== Issues ==
* None.
== Progress ==
* Commit the patch to support S2_<op1>_<Cn>_<Cm>_<op2> system register
in AARCH64 GAS.
* Identify the issue files in parallel build fail (PR57683) and
backport r197467 and r198999 to FSF GCC 4.8.
* Verify Linaro crosstool-ng to make sure Fortran is supported in all builds.
* Try PGO build for ifcombine heuristics. But got "the control flow of
function .. does not match its profile data".
* Investigate loop-invariant heuristics and rtx cost to select
SYMBOL_REF. But tests did not show performance gain.
* Investigate Coremark conditional compare issue in Cortext-M since
the BRANCH_COST is 1.
== Plan ==
* Continue on CCMP.
* Discuss ifcombine heuristics with upstream.
== Planed leaves ==
* Dec 3 & 5: Annual leaves
== Progress ==
- cbuild2 benchmarking
- Done the initial frame work (just with one benchmark) and sent out
for review
- 64bit division for ARMv7-A
- Posted the patch and added target hook documentation required
== Plan ==
- Address zero/extension review comments
- post 64bit divide patch with the required documentation
- investigative bootstrapping issues
- still waiting for h/w access
On 21 November 2013 07:12, Karlsson, Magnus <Magnus.Karlsson(a)lsi.com> wrote:
> Just wondering if somebody could point me to a good document on how the heap
> reclamation algorithm works for memory allocated in a user space program
> using the regular malloc/calloc functions.
Section 7.1.3, whose sub-sections include: "Implementation of malloc()
and free()", "Tools and libraries for malloc debugging", and
"Controlling and monitoring the malloc package", of Michael Kerrisk's
"The Linux Programming Interface" (http://man7.org/tlpi/index.html) is
one of the better reads of which I'm aware. He recommends reading the
man pages for malloc_info, malloc_stats, mallopt, and mallinfo (among
others) for more information.
In the C language, reclamation of allocated memory is usually driven
by the application. When you free() some memory, internal structures
know the size of what was previously allocated at the given location
(i.e. what was given to you by malloc()) and simply release that back
into the heap. There are ways to tweak the allocation of memory.
== This week ==
- This week was mostly spent on coming up to speed on the Linaro
backport process
- Backport 202872 - Merged changes from trunk to Linaro branch
== Next week ==
- Complete backport of 202872
- Begin work on other assigned backports
== Future ==
No concrete plans yet.
---------- Forwarded message ----------
From: Mark Pupilli <mpupilli(a)gmail.com>
Date: 17 November 2013 14:07
Subject: condition_variable_any missing from libstdc
To: linaro-toolchain(a)lists.linaro.org
Hi,
I sent this message a week ago but I don't think I was subscribed to the
list correctly. Apologies if it is repeated (it doesn't show in the
archive).
I have a problem with my cross build of (Linaro GCC 4.8-2013.10). I get the
following runtime linker errors regarding condition_variable_any:
"relocation error: /usr/local/lib/librobolib.so: symbol
_ZNSt22condition_variable_anyC1Ev, version GLIBCXX_3.4.11 not defined in
file libstdc++.so.6 with link time reference"
If I examine my built version of libstdc with readelf I get the following
output:
$ readelf -s ./src/.libs/libstdc++.so.6 | grep condition
10383: 000c58d8 68 FUNC LOCAL DEFAULT 11 _ZNSt15error_conditionC1E
10818: 000c58d8 68 FUNC LOCAL DEFAULT 11 _ZNSt15error_conditionC2E
10837: 000c5944 40 FUNC LOCAL DEFAULT 11 _ZNKSt15error_condition8c
10942: 000c591c 40 FUNC LOCAL DEFAULT 11 _ZNKSt15error_condition5v
Where as with the apt-get installed 4.6 version of the toolchain shows:
$ readelf -s /usr/arm-linux-gnueabi/lib/libstdc++.so.6 | grep condition
777: 000523b1 12 FUNC GLOBAL DEFAULT 12
_ZNSt22condition_variable@@GLIBCXX_3.4.11
929: 000522f1 104 FUNC GLOBAL DEFAULT 12
_ZNSt18condition_variable@@GLIBCXX_3.4.11
1037: 000523b1 12 FUNC GLOBAL DEFAULT 12
_ZNSt22condition_variable@@GLIBCXX_3.4.11
1198: 000522f1 104 FUNC GLOBAL DEFAULT 12
_ZNSt18condition_variable@@GLIBCXX_3.4.11
1686: 00052385 14 FUNC GLOBAL DEFAULT 12
_ZNSt18condition_variable@@GLIBCXX_3.4.11
2166: 00052359 12 FUNC GLOBAL DEFAULT 12
_ZNSt18condition_variable@@GLIBCXX_3.4.11
2438: 00052359 12 FUNC GLOBAL DEFAULT 12
_ZNSt18condition_variable@@GLIBCXX_3.4.11
2685: 00052365 16 FUNC GLOBAL DEFAULT 12
_ZNSt18condition_variable@@GLIBCXX_3.4.11
3186: 00052395 26 FUNC GLOBAL DEFAULT 12
_ZNSt22condition_variable@@GLIBCXX_3.4.11
3448: 00052395 26 FUNC GLOBAL DEFAULT 12
_ZNSt22condition_variable@@GLIBCXX_3.4.11
3643: 00052375 14 FUNC GLOBAL DEFAULT 12
_ZNSt18condition_variable@@GLIBCXX_3.4.11
(Which is still missing anything to do with condition_variable_any, but
given that my native 4.8 compiler doesn't contain this symbol either and my
code builds and runs natively, I assume this is how it should be).
Here is my build's version information:
$ arm-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/home/mark/arm-linux-gnueabi-4.8.2/libexec/gcc/arm-linux-gnueabi/4.8.2/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../gcc-linaro-4.8-2013.10/configure
--target=arm-linux-gnueabi --prefix=/home/mark/arm-linux-gnueabi-4.8.2
--with-local-prefix=/home/mark/arm-linux-gnueabi-4.8.2 --disable-nls
--enable-shared --enable-multilib --disable-decimal-float
--enable-languages=c,c++
--with-mpfr-include=/home/mark/gcc-4.8-arm-linux/gcc-build/../gcc-linaro-4.8-2013.10/mpfr/src
--with-mpfr-lib=/home/mark/gcc-4.8-arm-linux/gcc-build/mpfr/src/.libs
--enable-clocale=gnu --enable-threads=posix --enable-__cxa_atexit
--disable-libstdcxx-pch --with-system-zlib
--with-headers=/home/mark/arm-linux-gnueabi-4.8.2/include
--with-libs=/home/mark/arm-linux-gnueabi-4.8.2/lib
--enable-libstdcxx-threads --enable-libstdcxx-time
Thread model: posix
gcc version 4.8.2 20131014 (prerelease) (Linaro GCC 4.8-2013.10)
I configured libstdc++-v3 respectively as follows:
$ ../gcc-linaro-4.8-2013.10/libstdc++-v3/configure --host=arm-linux-gnueabi
--prefix=/home/mark/arm-linux-gnueabi-4.8.2/ --enable-multilib
--enable-shared --disable-nls --disable-libstdcxx-pch
--enable-libstdcxx-threads --enable-libstdcxx-time
I assumed the relevant entries to enable C++11 threading and condition
variables etc would have been --enable-libstdcxx-threads
--enable-libstdcxx-time. I must be missing some other options or have done
something else wrong. Any suggestions?
thanks,
Mark
== Progress ==
* Short week
- Two days off due to a messy implant bloating my face
- Should be better on Monday
* Cambridge LLVM Day, Cambridge University Computer Lab
- Presented the status of the auto-vectorizer in LLVM
* Releasing candidate 1 of LLVM 3.4
- All tests green, running benchmarks
- http://people.linaro.org/~rengolin/llvm/
* Buildbots
- Adding Chromebook self-hosting (fixing MCJIT tests)
- Adding Chromebook test-suite (fixing ClamAV)
- Will turn off the old Chromebook and re-install it for benchmarks
- Will add an Odroid XU in pair with the community one to be added next
week
* Background
- Patch reviews, discussions
* EEMBC rgbcmy implementation requires extensive changes to the compiler
- Will deal with them on the background over the next months
- While checking other EEMBC problems
== Plan ==
* Continue the 3.4 release
* Look at vectorization pragmas
* Look at other EEMBC results
== Progress ==
* Committed a couple of gdb patches
* Debug malloc to a working state, performance improved
* First version of glibc aarch64 ifunc support
* Found a couple of bugs in binutils aarch64 ifunc support
== Issues ==
* Missed two days due to illness
* Power cut and broadband outage on Wednesday afternoon
== Plan ==
* Respin and submit glibc docs patches
* Submit glibc aarch64 ifunc code
--
Will Newton
Toolchain Working Group, Linaro
Hi, All
Under this site
http://releases.linaro.org/13.09/components/toolchain/binaries/,
there are many files released. but do we have any description on the file
naming rules?
Sorry for my simple question, I just want to know what the files are used
for. which one I should select when I need to use toolchain.
Like the files below, I can guess that aarch64 means that it will generate
files run on aarch64 platform, but I can not guess what's the difference
between linux and none, and not know what's the difference between gnu and
elf.
So if you have any wiki/link about the the naming rules or description
about the file,
please share me.
crosstool-ng-linaro-1.13.1-4.8-2013.09-01.tar.bz2
crosstool-ng-linaro-1.13.1-4.8-2013.09.tar.bz2
gcc-linaro-aarch64-linux-gnu-4.8-2013.09-01_linux.tar.bz2
gcc-linaro-aarch64-linux-gnu-4.8-2013.09-01_linux.tar.xz
gcc-linaro-aarch64-linux-gnu-4.8-2013.09-01_runtime.tar.bz2
gcc-linaro-aarch64-linux-gnu-4.8-2013.09-01_src.tar.bz2
gcc-linaro-aarch64-linux-gnu-4.8-2013.09-01_win32.zip
gcc-linaro-aarch64-linux-gnu-4.8-2013.09-01_win32.zip.xz
gcc-linaro-aarch64-linux-gnu-4.8-2013.09-20130912_win32.exe
gcc-linaro-aarch64-linux-gnu-4.8-2013.09_linux.tar.bz2
gcc-linaro-aarch64-linux-gnu-4.8-2013.09_linux.tar.xz
gcc-linaro-aarch64-linux-gnu-4.8-2013.09_runtime.tar.bz2
gcc-linaro-aarch64-linux-gnu-4.8-2013.09_src.tar.bz2
gcc-linaro-aarch64-linux-gnu-4.8-2013.09_win32.zip
gcc-linaro-aarch64-linux-gnu-4.8-2013.09_win32.zip.xz
gcc-linaro-aarch64-none-elf-4.8-2013.09-01_linux.tar.bz2
gcc-linaro-aarch64-none-elf-4.8-2013.09-01_linux.tar.xz
gcc-linaro-aarch64-none-elf-4.8-2013.09-01_win32.zip
gcc-linaro-aarch64-none-elf-4.8-2013.09-01_win32.zip.xz
gcc-linaro-aarch64-none-elf-4.8-2013.09_linux.tar.bz2
gcc-linaro-aarch64-none-elf-4.8-2013.09_linux.tar.xz
gcc-linaro-aarch64-none-elf-4.8-2013.09_win32.zip
gcc-linaro-aarch64-none-elf-4.8-2013.09_win32.zip.xz
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09-01_linux.tar.bz2
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09-01_linux.tar.xz
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09-01_runtime.tar.bz2
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09-01_win32.zip
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09-01_win32.zip.xz
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09_linux.tar.bz2
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09_linux.tar.xz
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09_runtime.tar.bz2
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09_src.tar.bz2
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09_win32.zip
gcc-linaro-aarch64_be-linux-gnu-4.8-2013.09_win32.zip.xz
gcc-linaro-aarch64_be-none-elf-4.8-2013.09-01_linux.tar.bz2
gcc-linaro-aarch64_be-none-elf-4.8-2013.09-01_linux.tar.xz
gcc-linaro-aarch64_be-none-elf-4.8-2013.09-01_win32.zip
gcc-linaro-aarch64_be-none-elf-4.8-2013.09-01_win32.zip.xz
gcc-linaro-aarch64_be-none-elf-4.8-2013.09_linux.tar.bz2
gcc-linaro-aarch64_be-none-elf-4.8-2013.09_linux.tar.xz
gcc-linaro-aarch64_be-none-elf-4.8-2013.09_win32.zip
gcc-linaro-aarch64_be-none-elf-4.8-2013.09_win32.zip.xz
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09-20130912_win32.exe
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux.tar.bz2
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux.tar.xz
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_runtime.tar.bz2
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_src.tar.bz2
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_win32.zip
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_win32.zip.xz
gcc-linaro-armeb-linux-gnueabihf-4.8-2013.09_linux.tar.bz2
gcc-linaro-armeb-linux-gnueabihf-4.8-2013.09_linux.tar.xz
gcc-linaro-armeb-linux-gnueabihf-4.8-2013.09_runtime.tar.bz2
gcc-linaro-armeb-linux-gnueabihf-4.8-2013.09_win32.zip
gcc-linaro-armeb-linux-gnueabihf-4.8-2013.09_win32.zip.xz
--
Thanks,
Yongqin Liu
---------------------------------------------------------------
#mailing list
linaro-android(a)lists.linaro.org <linaro-dev(a)lists.linaro.org>
http://lists.linaro.org/mailman/listinfo/linaro-android
linaro-validation(a)lists.linaro.org <linaro-dev(a)lists.linaro.org>
http://lists.linaro.org/pipermail/linaro-validation
Hi toolchain gurus,
I am about to start some projects working with CortexMx devices and am
wondering if anyone has an opinion on which toolchain(s) I should
use/investigate?
Being a fan of Linaro, my first instinct would be to use cbuild2 to
build an arm-none-eabi- toolchain from a 4.8.x tree. But looking
around I can't help notice https://launchpad.net/gcc-arm-embedded.
Does anyone know if gcc-arm-embedded has things the Linaro toolchain
doesn't wrt Cortex M0, M3, and M4 device/instruction support?
Best regards,
Trevor
-------- Original Message --------
Subject: [Bug target/59216] [ARM] negdi*extendsidi regression
Date: Wed, 20 Nov 2013 18:06:14 +0100
From: christophe.lyon at st dot com <gcc-bugzilla(a)gcc.gnu.org>
To: Christophe LYON <christophe.lyon(a)st.com>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59216
--- Comment #2 from christophe.lyon at st dot com ---
Basically, the working code does:
asrs r3, r2, #31
negs r2, r2
sbc.w r3, r3, r3, lsl #1
while the failing one does:
negs r2, r2
asrs r3, r2, #31
--
You are receiving this mail because:
You reported the bug.
Hi LAVA folks,
I don't know if you guys know, but Android is moving to LLVM for the next
release or so. As such, we'll need to do a lot of testing between now and
next release to make sure each component can be compiled (and runs
correctly) with LLVM on an incremental basis.
We're trying to come up with a way for remotely testing the Linux kernel
booting on ARM devices, more specifically an Android stack, and I'm finding
it hard to do that with my home equipment. Doing that in LAVA would be
ideal, and I know the Android team does it already, but our constraints
could be a little different.
Basically, there are two fronts:
1. Building Android components with LLVM, using a GCC-compiled kernel
booting on an ARM board, in LAVA. This is something we should work
internally on how to do it, and it'll be between Android, LAVA and
Toolchain groups.
2. Building the Linux kernel with LLVM, and using a GCC-compiled image
(like stock CyanogenMod) to test the kernel. We don't have such a kernel
(many patches), but the LLVMLinux guys do, and that's where they come in.
On the second case, the topic of this email, we'd have to liaise with them
to fire jobs at LAVA from their own infrastructure (originally, manually
only), and that might need some thinking. But ultimatelly, we want to have
those jobs running on LAVA, so that later on we'd be able to have a third
layer: Linux+Android built with LLVM with the same system level tests.
Since the LLVMLinux guys don't have access to much ARM hardware, and since
it's easier for us to scale (or to re-define) hardware requirements, having
them running on LAVA makes even more sense.
Is this something we can do? Is this being done already? Is this just a
question of legal/corporate decision, or is there any technical issues we
have to look into?
Android folks,
It might make more sense if you guys just grab their kernel and build the
Android system based on that internally, so that we don't need external
access to job submissions in LAVA, but that would mean work from you guys
to patch it up, and that might not be in the roadmap for the next months.
Is that a feasible route?
cheers,
--renato
= Progress ==
* Created Cards for the infrastructure Team TODO list.
* Finished Cbuildv2 support for building GDB binary tarballs.
* Got Arch linux up on Odroid XU board again, seems stable, did a
build and test run.
* Experimented with lava-tool.
* Tried to get GCC trunk building native on aarch64 for libsanitizer
patch testing.
* Upgraded gmp to 5.1.3 in infrastructure/ to work around a configure
bug triggered by crouton native builds on a chromebook.
* Setup chromebook slaves in new toolchain build farm.
* Started adding support to Cbuildv2 to handle git URLs with a user
name, ie.. git(a)staging.git.linaro.org to work around git repo
problem.
== Plan ==
* Finish support for user names in URLs.
* Continue on remote testing support.
* Keep trying gcc trunk on aarch64 native.
* Fix git repo.
== Issues ==
* GCC git repo hasn't been auto updating the svn branch of
linaro-4.8-branch. It used to work... updating manually is now
broken as well.
* Somehow qemu snapshots tarballs are overwriting the toolchain
directories on snapshots.linaro.org.
* I don't think lava-tool is going to be useable for toolchain
testing, as it only queues up an executable test case to be run
later, whereas GCC expects the test to get run right away.
One day off
== Progress ==
* Prepared 4.7 and 4.8 2013.11 releases. Some delay because of board
crashes and disk full issues.
* Aarch64: committed 'frame grows downward' patch. This removes a
dependency for libsanitizer and libssp.
* libsanitizer on Aarch64: blocked by GCC trunk not bootstrapping
currently on Aarch64 HW (reported by Rob)
* Looked at cross-build failures of trunk after new
-fisolate-erroneous-paths. Ramana pointed me to Marcus' glibc patch,
and I could switch my builds from eglibc to glibc.
* cross-validations: updated list of configurations built&tested after
discussion with Richard during Connect.
== Next ==
* Announce 4.7 and 4.8 2013.11 releases
* Continue investigating 'extended neg' fix (aka tar regression)
* Look for patches to fix AArch64 bootstrap, so that we can test libsanitizer
One day off.
== Issues ==
* Various cbuild issues:
- disk full, boards down and benchmarks launched on different boards
== Progress ==
* LRA on AArch32:
- Proposed a ARM backend fix for the Fortran issue
http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01997.html
- Performance analysis ongoing
* Merge reviews and backports.
== Next ==
* Continue on LRA
== Progress ==
* Wrote ARM and Thumb stub handlers for simd, vfp and coprocessor
instruction recording.
* Read documentation on VFP and Neon register set to figure out a register
recording method.
* Follow up on upstream patches.
* Investigating a un-handled instruction test suite failure in arm process
record.
* 9th/10th Muharram Public holiday on Thursday and Friday.
== Plan ==
* Fix failures in arm process record due to un-handled instruction.
* Get started on writing handlers for coproc, vfp and simd instructions.
== Issues ==
* None.
== Progress ==
* One day (Nov. 15) off.
* Misc update for Linaro crosstool-ng
- Use newlib-linaro-2.0.0-2013.11-1.
- Update fortran support related scripts and configs according to
Matt's comments.
* Propose to support S2_<op1>_<Cn>_<Cm>_<op2> system register in AARCH64 GAS.
- Yufeng followed-up it and added full TRACE registers support.
* Investigate heuristic to tune ifcombine (TCWG-313)
- Got some new fails in regression tests since some optimizations
can not get the expected result.
- Collect Spec2k INT result. Overall there is no changes. But there
are -2 - 1% changes for several cases.
- PGO tests are ongoing.
== Plans ==
* Continue on CCMP.
* Continue on ifcombine tuning.
== Progress ==
* Preparing presentation on auto-vec for LLVM
- For Cambridge LLVM Day next Monday
- If accepted, also for FOSDEM 14
* Tracing strided access changes needed in auto-vec (PR17677)
- Reading the paper, preparing a reference implementation
- Discussing details and preparing the LLVM code to introduce it
- After a few attempts, it's clear that the code is not yet ready to cope
with the changes
- I'll have to work on the surrounding code to re-factor it for more
robust integration
- As well as triming some other edges (like pragmas) to help implement it
* Planning Android builds
- Trying to get a reference platform (most likely the new Arndale)
- LLVMLinux folks will help streamlining a kernel package for it
* Connect reservations, booking flight, etc.
- All done!
== Plan ==
* Monday at Cambridge LLVM Day at CUCL
* 3.4 Release testing
* Looking at vectorization pragmas and general structure of the memory
dependency checks
== Progress ==
* Fix ld testsuite on mainlne
* More malloc debugging and refactoring
* glibc patch review
* Investigate gdb hardware breakpoint issues
== Issues ==
* Didn't get much done on Friday due to sick baby
== Plan ==
* malloc
* Follow up glibc docs patches
* Further investigate gdb hardware breakpoint issue
--
Will Newton
Toolchain Working Group, Linaro
Short week: 2 days off after Connect.
== Progress ==
* LP 1243656: reverted commit which causes a regression in GNU tar's tests.
* Committed Kugan and Zhenqiang's backports to our branch
* Status on backports: ILP32 support missing from binutils is blocking
quite a few GCC backports (because of dependencies between commits)
* Some problems building trunk since Nov 5th (failures in eglibc)
== Next ==
* Make 2013.11 releases
* Continue working on GNU tar problem: find a proper fix.
* Commit 'aarch64 frame grows downward' patch if Richard approves it.
* Check status of aarch64 lib sanitizer branch if Rob manages to have
it build & execute tests
* Check Neon intrinsics testsuite status with Rob
== Progress ==
* Monday off for recovery from Connect.
* Created git_revisions branch for refactoring
* Added verified and correct --help and --usage text.
* Error check for spurios '=' after --<switch>
* Add toplevel test.sh for testing cbuild2.sh commands
* Fix get_URL and checkout to support git revisions.
* Improve dryrun to prevent grepping missing files.
* Added glibc support to cbuild2.
* Cleaned up merged cbuildv2 remote development branches
* Started cbuild2 bisect.
== Plan ==
* Merge glibc support upstream
== Issues ==
* None
== Progress ==
* Monday and Tuesday off for Jetlag recovery.
* Arm process record:
- Updated Patches for all fixes and features.
- Performed testing in arm native and remote configuration.
- Performed regression testing on arm and x86.
- Submitted all new patches after updates.
* Started gdb.reverse test suite failure investigation and open new Jira
issues accordingly.
* Started work co-processor instructions decoding for arm process record.
== Plan ==
* Continue work on co-processor instruction decoding for arm process record.
* Respond to upstream suggestions on patches sent previously.
== Issues ==
* Binaries build FAIL in cbuild, but OK in local build.
== Progress ==
* Misc update for Linaro crosstool-ng
- Update newlib to 2013.11.
- Modify scripts to meet the check of A-profile multilib support.
- Add fortran/libfortran support for bare metal build.
- Fix multi-lib conflict issue in local patch
- A refer A-profile bare metal build is shared at
http://cbuild.validation.linaro.org/snapshots/gcc-linaro-arm-none-eabi-4.8-…
* Update conditional compare patch according to comments.
* Investigate heuristic to tune ifcombine (TCWG-313).
== Plan ==
* Fix the binaries build FAIL issues.
* Continue on CCMP.
* Continue on ifcombine tuning.
== Planed leaves ==
* Nov. 15 - 16: Team event and HelloGCC in Beijing.
== Progress ==
- Looked into Cbuild2 and current benchmarking scripts
- Talked to Rob to understand the requirements and plan for next 2 weeks
- Backported gcc testcase fix that causes regression in Linaro 4.8 for
armv5te.
== Plan ==
- Taking leave next week.
- Start with benchmarking scripts after that
Worked from AMD Austin.
== Progress ==
* TLS based libssp support.
Solved segmentation faults in clone and fork tests regressing from
the patch I wrote. Ran glibc tests.
Two tests still fail, tst-cancel-17.c and tst-memqueue8.c. They both
use pthread_cancel and with my patch they time out. Debugging it to
find the cause. Informed Maintainer about my status and got some
advice to debug.
== Plan ==
* Taking vacation next week.
* But will continue send out gcc patch for libssp.
* reinstall ubuntu on my laptop
== Progress ==
* Enabled building GDB in all Cbuildv2 builds for --build all.
* Added support for Cbuildv2 to to build GDB source tarball.
* Got Canadian Crosses building via Cbuildv2, although I have to
apply a one line patch, which I was trying to avoid.
* Enabled Canadian Cross builds via Jenkins.
* Source and binary snapshots builds via Jenkins now getting copied
to snapshots.linaro.org.
* Got started migrating Christophe's neon intrinsic test cases to
GCC testsuite.
* Added DejaGnu 'linaro' branch to Cbuildv2 infrastructure so
the new baseboard files are available for Jenkins builds.
* Applied Christophe's libsanitizer patch on aarch64 APM board and
tried to get GCC to compile. Unsuccessful so far.
* Installed crouton 'saucy' on new HP Chromebook 11.
* Installed Fedora 19 on Samsung Chromebook.
* Started adding support to Cbuildv2 for building LLVM and
Clang and other components. I wish they all used autotools. :-)
* Got Gerrit working for GCC and Cbuildv2. The LAVA team has been
very helpful, but the setup docs miss way too many critical
details.
== Plan ==
* Figure out how to gpg sign the tarballs cbuildv2 is producing in
a secure manner.
* Finish adding support for building GDB binary tarballs.
* More work on neon intrinsics test cases.
* Work with new team member Mike to help him get up to
speed on all things Linaro.
* Try to get GCC trunk to build on aarch64.
* Off to the "Hacker's Conference" out here in Santa Cruz, back
home late Monday night.
== Issues ==
* Eglibc defines caddr_t as a typedef, where auto-host for a
Canadian Cross defines caddr_t, so stage2 fails to build.
* Sucked up all the disk space in the toolchain_cloud instance, so
all Jenkins builds are not working.
* We'd like to rename Cbuildv2 to something else, suggestions
welcome. :-)
== Progress ==
* LLVM Dev. Meeting 2013
* Meetings with Google, Qualcomm and ARM about Android and LLVM
* We're creating a task force to move Android to be compiled with Clang by
default, kernel, libraries, userland, native apps, Renderscript.
* Agreed on some actions for public benchmarking
- Hal will move tests to benchmarks by hand
- Linaro will create bots on that sub-set
== Plan ==
* Recuperate
* Work on the stride vectorizer
* Create benchmark bots
* Start a TableGen doc seed, so experts can chime in
* Prepare something for the CUCL LLVM Day on the 18th
== Progress ==
* Monday recovering from Connect travel
* Release Linaro newlib 2.0.0 2013.11
* Committed a number of gdb patches to fix bugzilla issues
* Submitted patches for glibc memory manual improvements
* Read a couple more papers on malloc
== Issues ==
* None
== Plan ==
* Finish off glibc memory manual and aligned_alloc patches
* malloc
--
Will Newton
Toolchain Working Group, Linaro
### About Linaro newlib
Linaro newlib is a release of the newlib C library with bug fixes and
enhancements for ARM platforms. newlib is a small footprint C library
designed for embedded systems.
### Linaro newlib 2.0.0 2013.11
The Linaro Toolchain Working Group is pleased to announce the 2013.11
release of Linaro newlib 2.0.0, the second release in the 2.0.0 series.
This release is based on the latest upstream newlib trunk, but with
additional features and bug fixes.
#### Additional Features
* Resync with upstream newlib trunk
* Improved support for Cortex-A and AArch64 baremetal systems
#### Bug Fixes
* None
### Source
#### Release Tarball
* https://releases.linaro.org/13.11/components/toolchain/newlib-linaro
#### Development Tree
* git://git.linaro.org/toolchain/newlib.git
This release was built from the `linaro_newlib-2_0_0-2013_11_release` tag.
### Feedback and Support
Subscribe to the important Linaro mailing lists and join our IRC channels to
stay on top of Linaro development.
* Linaro Toolchain Development [mailing
list](http://lists.linaro.org/mailman/listinfo/linaro-toolchain)
* Linaro Toolchain IRC channel on irc.freenode.net at `#linaro-tcwg`
* Questions? [ask Linaro](http://ask.linaro.org/).
* Interested in commercial support? inquire at [Linaro
support](mailto:support@linaro.org)
--
Will Newton
Toolchain Working Group, Linaro
The Linaro Toolchain and Builds and Baselines Working Groups are pleased to
announce the 2013.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.8 2013.10
* Linaro GDB 7.6.1 2013.10
* 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:
* The sample configurations no longer require the LSB tools
* The build now works behind a HTTP proxy
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://releases.linaro.org/13.10/components/toolchain/binaries/
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.
== Issues ==
* None
== Progress ==
* Commit the fix for lp:1243022 on trunk.
* Backporting r203603, r204247 and r203267 to Linaro gcc 4.8.
* Updating CCMP patch according to comments.
* Collect spec2K result for CCMP.
- Overall there is no regression and no improvement.
- 175.vpr is sensitive to branch cost. Smaller branch cost will lead
to regression for it even with CCMP.
* Investigate bare metal arm-none-eabi A profile multilib build.
- Need fix the conflict with current multilib support for arm-linux-gnueabihf
- Need scripts and config update to meet the check of
--with-multilib-list=aprofile
- A reference build is shared at
http://cbuild.validation.linaro.org/snapshots/aprofile-baremetal.tar.bz2
== Plan ==
* Continue on CCMP.
* Update Linaro crosstool-ng for bare metal A profile multilib build.
== Progress ==
(TCWG-266), (TCWG-270), (TCWG-250), (TCWG-280) and (TCWG-288)
* Arm process record:
- Created Patches for all fixes and features.
- Performed testing in arm native and remote configuration.
- Performed regression testing on arm and x86.
- Submitted all fixes in three patch series.
* Performed GDB testsuite run on arm and x86 to get current status with new
patches.
There seems to be more test passing on arm than x86 with recent patches.
* Prepare for connect and travel to Santa Clara.
== Plan ==
* Linaro Connect US 2013
== Progress ==
* Got Odroid XU board stable by using Arch Linux. None of the
Ubuntu derived images worked more than barely. Tried a suggested
hack to use cpufreq-set -g performance, which allowed a fresh
install of saucy to work. Did new builds and test run.
* Got remote toolchain testing working on the newly functioning
Odroid board(s) and chromebook. Currently baseboard support is in
a DejaGnu branch,
http://git.savannah.gnu.org/cgit/dejagnu.git/?h=linaro. I'm
adding the global site.exp file to Cbuildv2, so 'make check'
executes tests via ssh on remote targets.
* Uploaded test results of ARM native builds to
cbuild.validation.linaro.org for tcwg-web. (look for version
gcc-linaro-4.8-2013.10.24)
* Added support to DejaGnu to use a custom port for ssh and scp.
* Survived learning to use Concur for expense reports.
== Plan ==
* Attend Connect, do presentation, go to others.
* Try to work around problem with importing test results. (need to
work with LAVA team for this one, will do at Connect)
* Copy tarballs to snapshots.linaro.org. (need to work with LAVA
team for this one, will do at Connect)
== Issues ==
* I see to be having random stability issues with the two Odroid
boards, although did manage to complete a test run of a the
execute tests.
== Progress ==
* Ongoing refactoring of malloc to improve performance
* Preparation for Connect
== Issues ==
* None
== Plan ==
* Linaro Connect US
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Getting ready for Connect & LLVM US
* Stride Vectorization
- Added some logic to detect read/write reduction, possibly not the best
solution
- Consolidating all discussion into a single document for easy referral
- Creating several bugs (PR17673,PR17677,PR17678,PR17679,PR17680,PR17681)
* Re-Vectorizing
- A bug was passing the vectorizer again on an already vectorized loop
(PR17662)
- http://llvm-reviews.chandlerc.com/D2011, commit r193349
* Odroid XU
- Running more stable now, self-hosting doing well (more than a week on
24/7)
* Background
- Lots of patch reviews
- Lots of discussions about stride vectorization and others
== Plan ==
* Connect US next week
* US LLVM Dev Meeting the following
* Will be back in 2 weeks
== Issue ==
* Can not attend LCU'13 due to slow US Visa process.
== Progress ==
* Investigate lp:1243022:
- Root cause: REG_INC note is lost in subreg2 pass, so ira gets
wrong result in function validate_equiv_mem.
- Work out a patch for community review.
* Send conditional compare (CCMP) patch for community review.
- Benchmark testing is ongoing.
* Investigate heuristics to control ifcombine. Basically it will take
branch taken probability, frequency, branch-cost and basic block
reorder into account.
== Plan ==
* Performance tuning for CCMP.
== Issues ==
* None.
== Progress ==
* 2013-10 release.
- Backports and branch merges reviews.
* LRA on AArch32:
- Committed patch to enable LRA with the -mlra flag (disabled by default).
- Created 2 bugzilla entries for Thumb and address issues.
- Thumb issue work still ongoing.
* Launchpad bugs:
- Cleaned up a couple of them.
* Misc:
- Internal meetings.
== Next ==
* Short week (2 days off and 1 travelling)
* LRA
Hi,
may you think I'm on the wrong list, no not :-)
I currently build my u-boot loader using the linaro tool chain 2013.09
and run into a problem with the support for JFFS2 where the linker report
VFP usage where u-boot using softfp for build.
compiler options: -ffixed-r9 -msoft-float
arm-linux-gnueabihf-ld.bfd: error:
/opt/armhf/gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/libgcc.a(bpabi.o)
uses VFP register arguments, u-boot does not
when I use
make USE_PRIVATE_LIBGCC=yes
the problem shows up at an undefined reference
fs/jffs2/libjffs2.o: In function `jffs2_1pass_build_lists':
/opt/cross_build/uboot.d/u-boot-git/fs/jffs2/jffs2_1pass.c:1441: undefined
reference to `__aeabi_uldivmod'
arm-linux-gnueabihf-ld.bfd: BFD (crosstool-NG linaro-1.13.1-4.8-2013.09 - Linaro
GCC 2013.09) 2.23.2.20130610 Linaro 2013.06 assertion fail
/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-linaro-2.23.2-2013.06/bfd/elf32-arm.c:7687
may someone have a closer look into it?
thanks
Chris
Hi,
On 4 October 2013 19:01, Maxim Uvarov <maxim.uvarov(a)linaro.org> wrote:
> On 10/04/2013 07:40 PM, Victor Kamensky wrote:
>>
>> Hi Maxim,
>>
>> readl and writel are stronger version of readl_realxed and
>> writel_relaxed:
>>
>> #define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
>> #define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
>>
>> They just add __iormb and __iowmb, I think it is very
>> dangerous thing to drop those memory barriers. I don't
>> think your change is correct and/or it requires way
>> better explanation.
>>
>> I've run into the same crash while working on 3.12-rc3 BE
>> issues. In fact I saw this failure on both BE and LE and on
>> old versions of BE kernels when I tried to use 4.8 gcc version
>> from 13.09 release. When I fall back to 4.7 (i.e 13.04) it
>> works fine
>>
>> I would think it is compiler issue or preexisting issue
>> in the code uncovered by compiler change. Personally
>> I think it is the first. Since I am chasing another problem
>> I did not have time to look more deeply into the issue.
>> IMHO it definitely require more digging. In mean time you
>> can quickly check your current version and try another one
>> if your looks as one described in this email.
>>
>> Thanks,
>> Victor
>
> Ah, yes, it __raw_write has direct access and writel swaps bits.
>
> If it's compiler issue then it has to be simple to compare objdump disasm
> output for that function.
I think I've hit this issue. We use latest Linaro GCC 4.8 in the CI
loop to build Arndale BE kernel.
Is there a bug reported to TCWG? If not, please create one:
https://bugs.launchpad.net/gcc-linaro/+filebug
FYI, I'm using Linaro GCC 4.8-2013.09 (pre-built) and latest
linaro-linaro (based on 3.12-rc5 with Victor's topic branch). Boot log
attached.
Cheers,
Fathi
---
Hi,
Can you review this patch for me and help me get it upstream?
This is an official request for help from LEG to the TCWG, if that
matters :-)
Cheers,
mwh
libatomic/configure.tgt | 5 -----
1 file changed, 5 deletions(-)
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index b9e5d6c..7eaab38 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -95,11 +95,6 @@ fi
# Other system configury
case "${target}" in
- aarch64*)
- # This is currently not supported in AArch64.
- UNSUPPORTED=1
- ;;
-
arm*-*-linux*)
# OS support for atomic primitives.
config_path="${config_path} linux/arm posix"
--
1.8.1.2
== Progress ==
* Releases 4.7 and 4.8 2013.10
* Tried cbuildv2: difficult because of our company proxy, making some
changes necessary to cbuildv2. Tutorial sessions in Connect will be
welcome.
* Started chasing a regression in armv5 targets, handed over to Kugan.
* Noticed regressions in some cases with Charles' testsuite patch.
== Next ==
Short week: Monday/Tuesday off; Friday: travelling to Connect
* Look at trunks' new vectorizer cost model.
* Prepare Connect
== Progress ==
* Short week Hujj and Eid-Al-Adha Public Holidays in Pakistan 15-17
October 2013.
(TCWG-280)
ARM GDB Process Record Syscall support:
* Performed testing with all fixes incorporated and debugged failures
in remote configuration.
== Plan ==
(TCWG-266), (TCWG-270), (TCWG-250), (TCWG-280) and (TCWG-288)
* Arm process record: Submit all fixes and updates in three patches.
* Prepare for connect and travel to Santa Clara.
Very short week was on leave 14th and 16th October (India Holidays).
== Progress ==
* libssp glibc
Glibc tests are Segmenting at dl_close_worker, when I set pointer
guard. Debuging shows segfaults while expanding THREAD_GSCOPE_WAIT.
My assumption is thread pointer points to TCB and after allocating 16
Bytes before that, we can set pointer gaurd at tp -16. But not sure,
why it affects the pthread structure header which holds gscope_flag.
Also looked at TLS_MULTIPLE_THREADS_IN_TCB, enabling it lead to
__libc_multiple_threads undefined errors.
== Plan ==
* Continue libssp support.
* PGO for aarch64
== Progress ==
* 64bit division for targets without 32bit div instructions
- Finished the implementation
- Benchmarked it
- Getting ready to post RFC patch
* Connect Slides
- Worked on slides for connect
* Vector regression in 4.8-2013.09
- Started bisecting to find the issue
== Plan ==
* post RFC patch for 64bit division
* Vector regression in 4.8-2013.09
* Connect preparation
== Progress ==
* Improved the format of the emails that get sent to the cbuildv2
list from commits.
* Get Odroid U2 running stably, did native build on an external
USB disk. Upgraded to saucy. Did full toolchain build and test
run. 65 minutes per build.
* Got Odroid XU board to boot, then upgraded to saucy, not very
stable yet. Unlike the XU, it has a horrible lag when typing to
it via ssh.
* Updated chromebook to saucy, did native build and test run on
external USB drive. The U2 was faster, even with an older USB 2
only drive. 192 minutes for a build.
* Worked at verifying Cbuildv2 produced tarballs again since there
have been many little tweaks. The few differences between
Cbuildv2 produced tarballs and the official Linaro releases is
documentation related. For example, Cbuildv2 doesn't build the java
docs.
* Did slides for Connect presentation.
* Sat bagged an 900 foot ice route at over 13,000 feet. 8 mile
approach.
== Plan ==
* Try to work around problem with importing test results. (need to
work with LAVA team for this one)
* Copy tarballs to snapshots.linaro.org. (need to work with LAVA
team for this one)
* Get remote toolchain testing working on the newly functioning
Odroid board(s).
* Continued improvements to Cbuildv2.
== Issues ==
* My network and landline was down to upstream repairs for a day
and a half, bad timing during release week... :-(
Hi Bharath. Have a look under contrib/linaro/sysroot - there's a
script in there that you can fiddle with to pick a later distro.
-- Michael
On 16 October 2013 17:52, bhs <bharath.vegito(a)gmail.com> wrote:
> Hi Michael,
>
> I see that linaro's build system is using pre-built sysroot as an input
> to build cross-toolchain for ARM. I have a use case were we want
> eglibc-2.17(sysroot from raring) along with gcc-4.7.3 crosstoolchain. I
> could not any reference to the method in README file.
>
> How is the precise-sysroot used in building linaro toolchain binaries
> created?
> Thanks
> Bharath
> --
> This message was sent from Launchpad by
> bhs (https://launchpad.net/~bharath-vegito)
> using the "Contact this user" link on your profile page
> (https://launchpad.net/~michaelh1).
> For more information see
> https://help.launchpad.net/YourAccount/ContactingPeople
I accidentally sent without completing my 'Progress' section.
== Progress ==
eglibc -> glibc transition:
* Investigated upstream plan to retire eglibc and the implication of
losing options groups.
Cbuildv2 - Random patches
* [PATCH][Cbuildv2/get_source 17/17] lib/common.sh: get_source - Fix
for partial match in snapshots with <package>.conf:latest set.
* [PATCH][Cbuildv2/get_source 16/17] testsuite/test.sh: Add get_URL
test for <repo>.git@revision.
* [PATCH][Cbuildv2/get_source 15/17] lib/common.sh: Fix so that
get_URL works for <repo>.git@revision.
* [PATCH][Cbuildv2/get_source 14/17]
testsuite:test_sources.conf|test.sh: reserve nomatch.git for testing.
* [PATCH][Cbuildv2/get_source 13/17] testsuite/test.sh: Add tests
for user git repos not ending in .git.
* [PATCH][Cbuildv2/get_source 12/17] [test_]sources.conf: Unify
behind <label>.git identifiers for all git repos.
* [PATCH][Cbuildb2/get_source 11/17] New variable ${sources_conf} to
replace hardcoded config/sources.conf.
* [PATCH][Cbuildv2/get_source 10/17] testsuite/test.sh: Add test for
tag matching an svn repo in sources.conf.
* [PATCH][Cbuildv2/get_source 09/17] lib/common.sh: echo ${url} in
leg that processes direct non .git repositories.
* [PATCH][Cbuildv2/get_source 08/17] lib/common.sh: Fix for
unknown/unmatched get_source request.
* [PATCH][Cbuildv2/get_source 07/17] lib/common.sh: echo ${url} in
get_source when finding a successful snapshot match.
* [PATCH][Cbuildv2/get_source 06/17] lib/common.sh: find_snapshot
should return list of found snapshots even on error.
* [PATCH][Cbuildv2/get_source 05/17] lib/common.sh: Invoke
find_snapshot as a subshell in get_source.
* [PATCH][Cbuildv2/get_source 04/17] lib/common.sh: Suppress
extraneous trailing whitespace in get_URL and get_source output.
* [PATCH][Cbuildv2/get_source 03/17] testsuite/test.sh: Suppress
stderr noise and add new failing get_source tests.
* [PATCH][Cbuildv2/get_source 02/17] lib/checkout.sh: checkout
should use get_srcdir to reuse code.
* [PATCH][Cbuilv2/get_source 01/17] lib/make.sh: Don't continue with
build if source isn't found.
* [PATCH][Cbuildv2/get_source 00/17] Patchset to exhaustively test
get_source code legs and fix corner cases.
* [PATCH] cbuild2/lib/common.sh: redirect trace/error/warning, etc. to stderr.
* [PATCH] cbuild/lib/configure.sh: Fix stamp-configure* to prevent
spurious configure running.
* [COMMITTED][PATCH] cbuild/lib/make.sh: Add ${builddir}/install.log
from make install output.
* [COMMITTED][PATCH] lib/common.sh (list_URL): correct bash keyword
"locals" -> "local".
* [COMMITTED][PATCH] config/gcc.conf: Add --disable-shared to stage
1 default_configure_flags.
* [PATCH][test_fetch_md5sums_fix] testsuite/test.sh: Add second
fetch md5sums test and always use wget -q in testsuite.
* [PATCH][test_fetch_md5sums_fix] testsuite/test.sh: Always override
${local_snapshots} for tests.
== Issues ==
* None
== Plan ==
Objective before Linaro Connect:
* Wiki/README on using cbuildv2 sources.conf and <package>.conf:latest=
* git workflow document: collaborative use of git in Linaro
* wiki/README on using cbuildv2 local_snapshots for
specific/non-remote archives or git repositories.
General Cbuildv2:
* Audit usage of "local foo=`bar`; if test $?". Change to: "local
foo; foo=`bar`; if test $?".
- This is a known issue and very nefarious.
* Investigate dryrun to use stderr 2>&1?
* Port get_URL, get_source, and find_snapshot to unique behind
<repo>/<branch>@<revision> return type.
* Test local_snapshot overrides
== Progress ==
eglibc -> glibc transition:
* Investigated upstream plan to retire eglibc and the implication of
losing options groups.
Cbuildv2
*
[PATCH][test_fetch_md5sums_fix] testsuite/test.sh: Always override
${local_snapshots} for tests.
[PATCH][test_fetch_md5sums_fix] testsuite/test.sh: Add second fetch
md5sums test and always use wget -q in testsuite.
== Issues ==
* None
== Plan ==
Objective before Linaro Connect:
* Wiki/README on using cbuildv2 sources.conf and <package>.conf:latest=
* git workflow document: collaborative use of git in Linaro
* wiki/README on using cbuildv2 local_snapshots for
specific/non-remote archives or git repositories.
General Cbuildv2:
* Audit usage of "local foo=`bar`; if test $?". Change to: "local
foo; foo=`bar`; if test $?".
- This is a known issue and very nefarious.
* Investigate dryrun to use stderr 2>&1?
* Port get_URL, get_source, and find_snapshot to unique behind
<repo>/<branch>@<revision> return type.
* Test local_snapshot overrides
Hi,
We are working on userspace aarch64 and aarch32 apps and we are trying
to run 32/64 mode app simultaneously.
Is there any multi-arch support for mixed rootfs (has linkers/libs of
both arm and arm64)?
--
Thanks,
-Zhou
Progress:
* back from sabbatical!
* caught up on admin, email, etc
* code review: Christoffer's GIC related patches; VSEL support in 32 bit v8;
support for VBAR; integrator bugfixes; others
* working on a pullreq for ARM stuff to go into QEMU 1.7
(we're now in softfreeze)
Plans:
* attend KVM Forum, Connect
* review the SuSE aarch64-linux-user patches
-- PMM
== Issues ==
* None
== Progress ==
* Prepare Linaro toolchain binaries 2013.10 release
- Update EGLIBC version to 2013.10 and enable-profile for AARCH64.
- Generate Linaro prebuilt sysroot for arm-linux-gnueabihf.
* Commit patch to Reassociate X == CST1 || X == CST2 if popcount (CST2
- CST1) == 1 into ((X - CST1) & ~(CST2 - CST1)) == 0
* Send ifcombine patch (to generate more conditional compare) for review.
* Root cause pr58775.
* Test conditional compare changes.
- Bootstrap and no make check regression on THUMB mode.
- ARM mode test is ongoing.
== Plan ==
* Send out the CCMP patch for review.
== Issues ==
* Short week
- school closed on Thursday
- holiday Friday
- several visits to the dentist
- feeling poorly, I think I have shellfish allergy
== Progress ==
* EEMBC
- Identified the problem on test not vectorizing
- Some ways to fix it: SLP, stride-access, unrolling
- Started implementation of GEP-PHI detection for reduction variables
* Odroid XU
- Bot died after a few hours, not really stable
- Trying again, at home, both odroids in parallel, they seem ok
* Background
- General reviews, etc.
The Linaro Toolchain Working Group is pleased to announce the
release of both Linaro GCC 4.8 and Linaro GCC 4.7.
Linaro GCC 4.7 2013.10 is the nineteenth release in the 4.7
series. Based off the latest GCC 4.7.4+svn203509 release, this is the
sixth release after entering maintenance.
Interesting changes include:
* Updates to GCC 4.7.4+svn203509
* Fix for LP #1229170
Linaro GCC 4.8 2013.10 is the seventh release in the 4.8 series. Based
off the latest GCC 4.8.1+svn203510 release, it includes performance
improvements and bug fixes.
Interesting changes include:
* Updates to GCC 4.8.1+svn203510
* Improved AArch64 support (CRC extension, improved intrinsics, gprof
support)
* Improved Aarch32 support (bug fixes, better code generation,
improved multilib)
* Backports for bug fixes (PR58578
We are aware that FSF GCC 4.8.2 was released earlier this week.
However, this release happened too late in our cycle for us to use it
as the basis for Linaro GCC 4.8 2013.10. The only functional
difference contained in FSF GCC 4.8.2 that is not in Linaro GCC 4.8
2013.10 is a correction to a x86 test case.
The source tarballs are available from:
https://launchpad.net/gcc-linaro/+milestone/4.7-2013.10https://launchpad.net/gcc-linaro/+milestone/4.8-2013.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-2013.10https://launchpad.net/gcc-linaro/4.8/4.8-2013.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
### About Linaro binutils
Linaro binutils is a release of the GNU binutils with bug fixes and
enhancements for ARM platforms. GNU binutils is a collection of tools
including the `ld` linker and `as` assembler.
### Linaro binutils 2.23.2 2013.10-4
The Linaro Toolchain Working Group is pleased to announce the 2013.10-4
release of Linaro binutils 2.23.2, the third release in the 2.23 series.
This release is based on the latest GNU binutils 2.23 stable branch, but
with additional features and bug fixes.
#### Additional Features
* AArch64 GC sections support
* Support passing -mcpu=cortex-a53 and -mcpu=cortex-a57 to AArch64 gas
* Support passing -mcpu=cortex-a53 and -mcpu=cortex-a57 to ARM gas
* Support passing -mcpu=cortex-a12 to ARM gas
* Support AArch64 CRC instructions
* Support ARM CRC instructions
#### Bug Fixes
* Bug fix for AArch64 GOT layout
* Fixed source tarball structure
### Source
#### Release Tarball
* https://releases.linaro.org/13.10/components/toolchain/binutils-linaro
#### Development Tree
* git://git.linaro.org/toolchain/binutils.git
This release was built from the `linaro_binutils-2_23_2-2013_10-4_release`
tag.
### Feedback and Support
Subscribe to the important Linaro mailing lists and join our IRC channels to
stay on top of Linaro development.
* Linaro Toolchain Development [mailing
list](http://lists.linaro.org/mailman/listinfo/linaro-toolchain)
* Linaro Toolchain IRC channel on irc.freenode.net at `#linaro-tcwg`
* Questions? [ask Linaro](http://ask.linaro.org/).
* Interested in commercial support? inquire at [Linaro
support](mailto:support@linaro.org)
--
Will Newton
Toolchain Working Group, Linaro
### About Linaro eglibc
Linaro eglibc is a release of the eglibc C library with bug fixes and
enhancements for ARM platforms. eglibc is a variant of the GNU libc
designed to work well on embedded systems.
### Linaro eglibc 2.18 2013.10
The Linaro Toolchain Working Group is pleased to announce the 2013.10
release of Linaro eglibc 2.18, the second release in the 2.18 series.
This release is based on the latest upstream eglibc 2.18 stable branch,
but with additional features and bug fixes.
#### Additional Features
* AArch64 profiling support
* Optimized strlen for ARMv6T2
* Small enhancement to memcpy performance
* ARM pointer encryption support
#### Bug Fixes
* Fix for integer overflows in memalign/pvalloc/valloc
### Source
#### Release Tarball
* https://releases.linaro.org/13.10/components/toolchain/eglibc-linaro
#### Development Tree
* git://git.linaro.org/toolchain/eglibc.git
This release was built from the `linaro_eglibc-2_18-2013_10_release` tag.
### Feedback and Support
Subscribe to the important Linaro mailing lists and join our IRC channels to
stay on top of Linaro development.
* Linaro Toolchain Development [mailing
list](http://lists.linaro.org/mailman/listinfo/linaro-toolchain)
* Linaro Toolchain IRC channel on irc.freenode.net at `#linaro-tcwg`
* Questions? [ask Linaro](http://ask.linaro.org/).
* Interested in commercial support? inquire at [Linaro
support](mailto:support@linaro.org)
--
Will Newton
Toolchain Working Group, Linaro
== Issue ==
* AArch64 frame grows downward: no feedback yet.
== Progress ==
* Disable-peeling: Vectorizer cost model has been changed upstream,
quick look at benchmark results show little difference between before
and after the change. Need to analyze further, since I expected the
regressions previously identified with my patch to appear here too.
* AArch64 bootstrap failure: succesfully bootstrapped in the model.
* GCC trunk validation:
- improved configurability (default cpu, fpu, mode, testsuite flags
are selectable)
- requested feedback to build the list of desirable combinations to validate
* Backports/release 2013.10
- a few more backports completed
- re-trying to backport the ILP32 and refactoring series proves
again to be tricky, but helped identify backports which had escaped
from the list.
- cbuild has disk full again
* GCC Neon intrinsics testsuite:
-- posted a proposition to add my executable tests to the existing
framework. No feedback yet.
== Next ==
* Make 2013.10 releases, both with the historical process and using
cbuildv2, in parallel
* Disable-peeling/new vectorizer cost model: analyze bench results
== Progress ==
* Got cbuildv2 google group setup.
(https://groups.google.com/a/linaro.org/forum/#!forum/cbuildv2)
* Got email notifications working for commits to cbuildv2 repository.
* Continued work on release building via Cbuildv2. Source tarballs
checked out OK, binaries too. Probably a few tweaks left to cover
the minor differences, which are all documentation files.
- Rebuild GCC dynamically so the shared libraries for libgcc and
libstdc++ can go in the runtime binary tarball.
- Build runtime binary tarball.
- Added install script to sysroot tarball.
- Make overriding the default release tag with a user supplied
one work fully.
* Got Odroid U2 board working again, did complete native build
using cbuildv2.
* Reviewed more cbuild2 patches from Ryan.
* Got Jenkins building snapshot tarballs.
== Plan ==
* Do slides for Connect presentation.
* Work on duplicating the 2013.10 release via cbuildv2.
* Get Odroid X2 board to boot, which it currently refuses to do.
* Try to work around problem with importing test results.
* Copy tarballs to snapshots.linaro.org.
== Progress ==
* 4 Day week (October 7th Public Holiday)
* 64bit division
- Looked at libgcc division implementations
- Implemented in C "Align divisor shift dividend method" for
procssors without div instrusttion
- gcc regression now pass with above
* spec2k comparison between ARM and x86
- Continue working on slides for connect
- ran benchmarks to gather required results
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Continye with 64bit division
== Progress ==
(TCWG-266), (TCWG-270), (TCWG-250), (TCWG-280) and (TCWG-288)
* Added arm process record syscall support changes and some bug fixes.
* More improvement to gdb.reverse on arm now 2214 tests are passing in
native mode (144 failures left)
(TCWG-267), (TCWG-268) and (TCWG-269)
* No progress this week.
* Received US visa from US visa passport collection center.
* Booked travel for LCU13.
== Plan ==
* Short week Hujj and Eid-Al-Adha Public Holidays in Pakistan 15-17
October 2013.
(TCWG-250)
* Update/test arm process record thumb32 support patch incorporating
changes suggested by Will in his review.
(TCWG-280)
* Improve code changes and find ways to avoid hard coded constants
imported from Linux Kernel.
== Issues ==
* Develop machine was broken. Have to resetup the system.
== Progress ==
* Commit fix for pr58423
* Enhance Linaro crosstool-ng
- Fix lp:1232678
- Get EGLIBC version from config files automatically.
- Build aarch64 sysroot to support profile
(https://launchpad.net/linaro-toolchain-binaries/support/01/).
* Update the patch "Reassociate X == CST1 || X == CST2 if popcount
(CST2 - CST1) == 1 into ((X - CST1) & ~(CST2 - CST1)) == 0" according
to comments.
* Continue on CCMP
- Send the phiopt patch to handle CCMP for community review. Jeff
will follow-up it.
- Enhance ifcombine to generate more CCMP.
- Handle more than 2 compares in expand.
- Add new instruction patterns to generate CCMP for ARM. Test is ongoing.
== Plan ==
* Send ifcombine patch for community review.
* Continue on CCMP testing.
== Progress ==
* CbuildV2 Fixes to add fetch md5sums to testsuite/test.sh:
- Subject: [PATCH][test_fetch_md5sums 1/2] lib/fetch.sh: Add
missing ${local_snapshots} to md5sum path.
- Subject: [PATCH][test_fetch_md5sums 2/2] testsuite/test.sh: Add
fetch tests section.
* CbuildV2 Fixes to get testsuite/test.sh working in the source directory:
- Subject: [PATCH][cbuild2 1/3] testsuite/test.sh: Don't use
"warning" function before it is sourced.
- Subject: [PATCH][cbuild2 2/3] testsuite/test.sh: Remove
redundant sourcing of host.conf.
- Subject: [PATCH][cbuild2 3/3] testsuite/test.sh: Re-enable
running tests from src dir.
CbuildV2 random fixes:
- Subject: [PATCH][cbuild2 2/4] cbuild2.sh: correct --disable "boostrap"
- Subject: [PATCH][cbuild2 3/4] config/ffmpeg.conf: separate options
* CbuildV2 fixes to remove ${dir}/md5sums usage (it is redunant with
snapshots/md5sums).
- Subject: [PATCH][cbuild2 1/4] Remove unneeded
infrastructure/md5sums fragment
- Subject: [PATCH][cbuild2 4/4] Remove ${dir} specific md5sums files.
* Fixed error where gcc stage 2 configure returns early (erroneously)
on success.
- [PATCH] Only return early on error following configure
* Fixed error in downloading branch named git repos in lib/checkout.sh.
- [PATCH] Fix git clone to get repo without branch name as part of the url.
== Issues ==
Contacted its@linaro requesting permission to be able to create
personal branches in rsavoye’s cbuild2 git tree. They created a group
for cbuildv2.
Got work laptop installed (dualboot) with Fedora 19 and ran into some
errors with secure boot.
== Plan ==
* Spend some time looking at our options with regard to EGLIBC options
groups when forced to move to glibc proper.
*
== Progress ==
* Backports and release for binutils 2013.10 (x4!)
* Backports and release for eglibc 2013.10
* Submitted a couple more glibc memalign patches
* Committed aarch64 gdb fix
* Bits of malloc work in between
== Issues ==
* None
== Plan ==
* Try and get some uninterrupted time on malloc
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* EEMBC
- Updating Linaro image with Clang toolchain changes
- Updating compare_all script to rank boards
- Investigating differences in performance against GCC
* ODroid XU
- Setting up server image (Linaro 13.09 + odroid specific changes)
- CPU scheduler is a mess, forcing "performance" governor at boot seems to
work
- No journal in root fs, remounts ro all the time (bad image?)
- LLVM builds are slow (as fast as Chromebook), maybe it's the SDCard
- Setting it as self-host buildbot in the lab, going well
* Background
- Massive patch review (Sub-Register Live Range Analysis for NEON/VFP et
al)
- LLVM Sync and EuroLLVM meetings
== Plan ==
* Continue investigating performance problems in EEMBC
* Check Odroid XU internal buildbot for stability
Hi Term,
I have try to us "crosstool-ng-linaro-1.13.1-4.8 "to build myself cross tool chain,
but some problem happened,just before I have used crosstool-ng offcial version,
every thing is fine,I have got my toolchain, my operation system is Ubuntu 12.10,
when I change to crosstool-ng-linaro,
I am follow these steps.
ct-ng list-samples,
ct-ng linaro-arm-linux-gnueabihf
ct-ng menuconfig
I just change Local tarballs directory ,Prefix directory ,and change target os from
prebuilt to linux,
then,I build it,first time error happened at step "cc_core_pass_1 ",I google it
and found out it is about multilib,I need to install gcc-multilib and g++-multilib,
then,I continue,this time,error happened at step"cc_core_pass_2 ".
related messages in build.log:
[ALL ] Supported emulations: armelf_linux armelf armelfb armelfb_linux
[ERROR] collect2: error: ld returned 1 exit status
[ERROR] make[4]: *** [libgcc_s.so] Error 1
[ALL ] make[4]: Leaving directory `/work/software/cortexa9-linaro-build/.build/arm-linux-gnueabihf/build/build-cc-core-shared/arm-linux-gnueabihf/arm-linux-gnueabi/libgcc'
[ERROR] make[3]: *** [multi-do] Error 1
[ALL ] make[3]: Leaving directory `/work/software/cortexa9-linaro-build/.build/arm-linux-gnueabihf/build/build-cc-core-shared/arm-linux-gnueabihf/libgcc'
[ERROR] make[2]: *** [all-multi] Error 2
[ALL ] make[2]: Leaving directory `/work/software/cortexa9-linaro-build/.build/arm-linux-gnueabihf/build/build-cc-core-shared/arm-linux-gnueabihf/libgcc'
[ERROR] make[1]: *** [all-target-libgcc] Error 2
[ALL ] make[1]: Leaving directory `/work/software/cortexa9-linaro-build/.build/arm-linux-gnueabihf/build/build-cc-core-shared'
[ERROR]
[ERROR] >>
[ERROR] >> Error happened in: main[scripts/crosstool-NG.sh]
so,I really don't know how to do now,any help is welcome.Thank you
Cheers,Rick
Hi team,
In the GCC.pdf of gcc-linaro-aarch64-none-elf-4.8-2013.08, it says that -mcpu supports cortex-a53, but when I tried to build a simple hello bare metal application with -mcpu=cortex-a53 option, gcc reports,
Error: unknown cpu `cortex-a53'
Error: unrecognized option -mcpu=cortex-a53
Could you please confirm whether Cortex-A53/A57 performance tunning is supported?
Thanks.
Best Regards.
------------------------------------------------------------------
Zenon Xiu
-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782
We have spotted a problem with the GOT layout in binaries generated by the
2013.09 Aarch64 toolchain, causing them to crash on startup.
New builds fixing this issue are now available at
http://releases.linaro.org/13.09/components/toolchain/binaries
The arm-linux-gnueabihf and arm-none-eabi toolchains are not affected by
this problem - there is no respin version for those builds.
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:
http://releases.linaro.org/13.09/components/toolchain/binaries
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.
== Progress ==
* AArch64 frame grows downward: no feedback yet.
* Disable-peeling: Vectorizer cost model has been changed upstream,
the current default now includes the effect of disabling peeling. I
have submitted benchmark jobs to check the exact effet; expecting some
regressions since the reduced test case I was working on now generates
the same code as with my patch.
* AArch64 bootstrap failure: build it still on-going, so still hoping
to reproduce it.
* GCC trunk validation:
- good progress on reporting
- cross-validating several configurations (currently 18) for each
upstream commit is too much for our compute farm to handle.
Reduced to patches related to ARM/AArch64, but then we can miss
regressions caused by other generic patches.
* Backports:
- committed a few simple ones.
== Next ==
* AArch64 frame grows downward: continue
* Disable-peeling/new vectorizer cost model: analyze bench results
* Backports : check which ones can be reasonably done
== Issues ==
* None.
== Progress ==
* 2013-10 release.
- Reviewed some backports.
* LRA on AArch32:
- Testsuite analysis showed one remaining issue in ARM mode
(with the movmisalignv8hi_neon_store insn handling).
- Ran Benchmarks on Calxedas, some failures due to the same bug.
- Benchmarks on tcpandas ongoing.
- Benchmarks results analysis ongoing.
== Next ==
* Continue on LRA.
== Progress ==
* libssp
Updated review comments given by glibc maintainer and rerun tests.
There are some test failures, suspecting issue in using
ALIGN_UP/DOWN macro. Debugging them.
* gprof support for aarch64
Upstreamed patches to GCC and backported to Linaro 4.8 branch.
Closed the cards for gprof work.
* 1-1 Meet with Christophe.
== Plan ==
* Continue libssp support.
* Restart Aarch64 boot strap in a server machine.
* Book hotel ticket for connect.
* PGO for aarch64
== Progress ==
* Fixed my laptop's desktop by upgrading to saucy & Gnome 3.10.
* Continuing with Jenkins/Cbuildv2/Git integration. Since this is
an ongoing task, I think I'm going to stop listing it every
week. :-)
* Fixed more bugs in Cbuildv2 when handling branches and revisions.
* Compared source tarballs for binutils and gcc, Linaro releases
against Cbuildv2 produced ones.
* Added support to Cbuildv2 for building binutils source releases
in the same style as src-release.
* Worked on aarch64 builds on real hardware to test adding
libatomic and go to builds.
* Added support to build all documentation, which is used when
building tarballs.
* Reviewed and applied Cbuildv2 patches from Ryan.
== Plan ==
* Try to work around problem with importing test results.
* Continued work on release building via Cbuildv2.
* Get Odroid boards working reliably, ordered AC powered USB hubs
to work around problem with exterrnal USB drives.
== Progress ==
* Traveled to Islamabad for US Visa Interview, got verbal confirmation
of visa. Passport will be back this week.
(TCWG-250)
* GDB ARM Process Record Thumb32 Support: Submitted a new patch
upstream which fixed bugs.
(TCWG-270)
* Tested arm process record bug fixes in various configurations to get
pass rate statistics for the new patch.
(TCWG-280)
* Reviewing changes required for syscall support for gdb arm process record.
== Plan ==
(TCWG-267), (TCWG-268) and (TCWG-269)
* Ping or Send response to comments.
(TCWG-280)
* Start implementation and complete most part of coding next week.
* If Passport comes back with visa stamped: plan/book travel to US,
gather connect related information and notify all concerned.
== Progress ==
* Lnaro 4.8 Bugfix
- Fixed Bugs LP1232017 and LP1234060
- gmp and mpfr make check now clean
* spec2k comparison between ARM and x86
- Looked at register allocation issues
- Started working on slides for connect
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Start again with 64bit division
== Misc ==
* October 7th Public Holiday.
== Progress ==
* Finished most new employee onboarding
* Setup Chromebook with Linux Ubuntu (crouton) development environment.
* glibc
[PATCH] Update generic swapon definition to match prototype.
* CBuildV2
[PATCH] Fix stamp-configure* name for git repos with specific named branches
[PATCH] Only return early on error following configure
[PATCH] Remove dryrun wrapper from git-new-workdir invocation.
[PATCH] Fix stamp name for git repos with specific named branches.
[PATCH] Remove lynx check from configure[.ac]. It's no longer used.
Started working on a patch to fix git working directory branch
name for named branches.
== Plan ==
* Install Fedora 19 on work laptop that just (Oct 4) arrived and
setup working environment.
* Finish first-pass fixes on cbuildv2.
* Complete patch to fix git working directory branch name.
* Start working on a glibc.git conf file to potentially move away
from eglibc.git.
* Fix cbuildv2 fetch time stamps. They seem to always be downloading
tar balls.
* Fix stamp output so that it doesn't imply that stamps or older
than a file when stamps do not yet exist.
== Issue ==
* Temporary desktop corruption and couldn't Linux 'rescue' from an
encrypted drive. Spent part of Tuesday rescuing my work environment
off the drive and reinstalling system.
== Progress ==
* EEMBC
- Ran on multiple boards, collected statistical data, wrote some scripts
to do it again
- Found a few regressions on GCC 4.9, reported internally
- Found 4 benchmarks in which LLVM is a lot worse
- Looking at RGBCMY which GCC is able to vectorise
- LLVM transforms the pointer access into a PHI cycle, which is wrongly
interpreted as a reduction variable by the loop vectorizer.
* Background
- Patch reviews and discussions as usual
- TCWG rack has arrived!
- Got another Chromebook and an ODroid XU to play with next week
== Plan ==
* Update script to rank the compilers according to EEMBC results on the
same machine
* Try to teach the loop vectorizer to not treat load/store PHIs as a
reduction variable
* Set up some temporary buildbots with new hardware
Hi,
With the patch I just sent to this list in place, gccgo builds for
aarch64. I don't know how well it _works_ -- "hello world" builds and
runs -- but I would like to ask what the process would be to get gccgo
included in the binary distributions of GCC that Linaro makes.
Cheers,
mwh
== Progress ==
* Got Odroid U2 board up and doing builds. Stock hardkernel kernel
images are unstable, keeps remounting USB drive read-only under
a load.
* Got the new support for branches and revisions for any toolchain
component working in Cbuildv2.
* Attended the 30th anniversary of the GNU project in Boston over the
weekend.
== Plan ==
* Continuing with Jenkins/Cbuildv2/Git integration.
* Try to work around problem with importing test results.
* Compare automated tarballs with the current release tarballs.
* Get Odroid U2 working reliably.
* Get Odroid X2 working.
== Issues ==
* Upgrading Gnome on my laptop destroyed my desktop to where
nothing worked, limiting productivity for a few days.
Hi,
With respect to the MPFR build error,
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58578), is movs appropraite
as shown below? When _err1 is negative the condition is evaluating it to
be true.
/* C Codeoes */
if (_err1 > 0)
{
/* working code */
.loc 1 67 0
cmp r3, #0
ble .L6
/* not working code*/
.loc 1 67 0
movs r3, r3, asl #1
ble .L6
When I looked at the ARM documents, I found the following
Condition flags
-------------------
If S is specified, for MOV instructions:
1. update the N and Z flags according to the result
2. can update the C flag during the calculation of Operand2 (see
Flexible second operand)
3. do not affect the V flag.
And also
le Signed less than or equal. (Z==1) || (N!=V)
Does this means we cant movs at comparision.
http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00861.html added this and I
guess it is intentional.
Am I missing anything here?
Thanks,
Kugan
== Progress ==
* AArch64 frame grows downward: no feedback yet.
* Disable-peeling: trying to tune the vectorizer cost model so that it
is less aggressive.
* AArch64 bootstrap failure: build it still on-going, so still hoping
to reproduce it.
* GCC trunk cross-validation:
- aarch64 added
- looking at how to handle compute farm jobs timeouts nicely
* Backports:
- launched several merge requests for a few individual patches.
== Next ==
* AArch64 frame grows downward: continue
* Disable-peeling: continue
* Backports : spend little time on checking the results
Progress
. worked on cleaning up arm config in gcc (TCWG-201)
. not really convinced I have a way to properly test the result
. a bit of bug triage
. a bit more on the 4.7 segfault bug (lp1215925)
Plans
. ping the arm*gnueabihf testsuite patch
. finish the config clean up
. revisit 4.7 segfault, now I have more suggestions from Matt
== Issues ==
* None.
== Progress ==
* Misc:
- Installed Saucy on Chromebook.
* LRA on AArch64:
- Committed RTL analyser patch.
- Committed patch which switch on LRA on AArch64.
* LRA on AArch32:
- Committed patch which fix failing assembly scan test with LRA.
- Committed LRA register notes DEAD and UNSUSED handling in LRA.
- Bootstrapped GCC with LRA on Chromebook.
- Analysis of testsuite results ongoing.
== Next ==
* Continue on LRA.
Short week (Tuesday and Wednesday went to US consulate Chennai for
VISA interview and document processing).
== Progress ==
* gprof support for aarch64
Re-based and tested. Asked permission for upstreaming in trunk.
Gibc patches are upstreamed. Thanks to Marcus.
* Aarch64 Boot strap failure.
Tried to reproduce it in V8 model. Build failing in stage 1 for me.
* 1-1 Meet with Christophe.
== Plan ==
* Back to libssp support.
* Aarch64 boot strap issue.
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
Misc
------
October 2 India Holiday.
== Progress ==
* MPFR and GMP Build error with Latest 4.8 Release
- Reproduced MPFR error with a simplified testcase
- Found the buggy codesequence and the patch that introduced it.
- Looking at solution for this
- Reprdouced GMP error with -march=armv7-a and -mthumb
- continuing with the invetigation
* 64bit division
- Looked at current libgcc implementaion and studied the alorithm.
* Addressing patch review
- Posted second patch for zero/sign extension
* spec2k comparison between ARM and x86
- Ran spec2k with various options to validate code analysis
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Continue 64bit division
* Fix GMP and MPFR build error
== Progress ==
(TCWG-270)
* Tested GDB Process Record/Replay and reverse debug feature for arm.
* Thumb32 support patch along with a couple of bug fixes made huge
improvement in testsuite results.
(TCWG-267) and (TCWG-269)
* Reviewed all previous submitted patches and wrote response patch updates.
* Implemented gdb/testsuite/gdb.dwaf2/dw2-error.exp using dwarf assembler.
(TCWG-268)
* Submitted patch for failing gdb/testsuite/gdb.dwaf2/dw2-case-insensitive.exp
(TCWG-272)
* Re-viewed and verified gdb bugs reported on launchpad and created
JIRA cards where required.
(TCWG-265)
* Generated Test data to test instruction decoding in arm specific
code of gdb process record/replay.
(TCWG-280)
* Reviewed previously submitted patches related to gdb process record
syscall support for arm targets.
* Submitted US Visa application for processing and got appointment for
Visa Interview.
* Reviewed all open JIRA cards and created new ones for future progress on GDB
== Plan ==
(TCWG-270)
* Submitt patch for bug fixes and show testsuite improvement with bug
fixes and thumb32 patch.
* Do more testing and analyse failures and try to fix them if possible.
* Verify issues reported by maintainers in old arm instruction decoding code.
(TCWG-267), (TCWG-268) and (TCWG-269)
* Update gdb/testsuite/gdb.dwaf2/dw2-error.exp as asked by gdb maintainers.
* Ping or Send response to comments.
(TCWG-280)
* Test syscall support with old patch and make changes if required.
* Travel to Islamabad on Tuesday to attend US visa interview early
morning Wednesday.
== Issues ==
* None
== Progress ==
* Update Conditional compare (CCMP) patch according to community comments.
* Investigate how to generate CCMP to support more than two compares.
- Investigate ifcombine to create more CCMP opportunities.
- Enhancing phiopt to handle CCMP case like:
if (a == 0 && b > c)
return 0
return a;
== Plan ==
* Continue on CCMP to support more than two compares.
== Panned leaves ==
* Oct. 1-7: National Day of China holiday
== Progress ==
* Profiling ImageMagick
- Clang 3.4-svn is around 10% less performing than GCC 4.7.3
- Mainly due to recursive octree-style map/reduce of most functions,
spending a lot of time
before/after branches
- Any optimization on that front won't fit the "Incubation" tag
* Profiling EEMBC
- Found 2 cases where Clang is *a lot* better than GCC 4.7.3 (pruning
bmark.c, producing much
smaller objects, and vectorizing telecom/autcor, which GCC can't)
- Most of the time, GCC is slightly better (~5% faster, ~10% smaller,
geomean)
- Wrote some scripts to run any two compilers against each other, compare
the results and
dump the ratios in a TSV file.
== Plans ==
* Update EEMBC Linaro image with Clang toolchain changes
* Look for low-hanging fruits in EEMBC
* Try comparison with GCC 4.8 and 4.9, too
* Find a way to extract Phoronix results in TSV format
== Progress ==
* Checked testsuite for glibc and gcc bootstrap on aarch64 native
* Released Linaro gdb 7.6.1 2013.09-1
* Submitted glibc pointer guard patch using TLS
* Submitted respin of pointer guard patch using a global variable
* Submitted binutils aarch64 ifunc patches for a second time
* A little bit of time on malloc
* Built office furniture!
== Issues ==
* None
== Plan ==
* Finish off pointer guard
* Hopefully back to malloc
--
Will Newton
Toolchain Working Group, Linaro
The Linaro Toolchain and Platform Working Groups are pleased to announce
the 2013.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.
This release introduces a set of experimental (pre-alpha) crosscompilers to
big-endian ARM architectures.
Uses include:
* Cross compiling ARM applications from your laptop
* Remote debugging
* Build the Linux kernel for your board
What's included:
* Linaro GCC 4.8 2013.09
* Linaro Newlib 2.0 2013.06
* Linaro Binutils 2.23 2013.06
* Linaro Eglibc 2.17-2013.07-2
* Linaro GDB 7.6 2013.05
* 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:
* gcc updated to 4.8-2013.09
* Initial big-endian pre-alpha versions added
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:
http://releases.linaro.org/13.09/components/toolchain/binaries
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.
### About Linaro gdb
Linaro gdb is a release of the GNU debugger with bug fixes and
enhancements for ARM platforms. gdb allows interactive debugging of
C and C++ programs natively and remotely.
### Linaro gdb 7.6.1 2013.09-1
The Linaro Toolchain Working Group is pleased to announce the 2013.09-1
release of Linaro gdb 7.6.1, the first release in the 7.6.1 series.
This release is based on the latest upstream gdb 7.6 stable branch,
but with additional features and bug fixes.
#### Additional Features
* None
#### Bug Fixes
* Fixes for debugging on AArch64 with hardware breakpoints.
### Source
#### Release Tarball
* https://releases.linaro.org/13.09/components/toolchain/gdb-linaro
#### Development Tree
* git://git.linaro.org/toolchain/gdb.git
This release was built from the `linaro_gdb-7_6_1-2013_09-1_release` tag.
### Feedback and Support
Subscribe to the important Linaro mailing lists and join our IRC channels to
stay on top of Linaro development.
* Linaro Toolchain Development [mailing
list](http://lists.linaro.org/mailman/listinfo/linaro-toolchain)
* Linaro Toolchain IRC channel on irc.freenode.net at `#linaro-tcwg`
* Questions? [ask Linaro](http://ask.linaro.org/).
* Interested in commercial support? inquire at [Linaro
support](mailto:support@linaro.org)
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Finally got GCC 4.7 automatic updates working from launchpad.
* Continuing with Jenkins/Cbuildv2/Git integration.
* Added support for using specific commit IDs with Git and
Cbuildv2. Also many improvements to how git branches and
revisions are handled.
* Worked on importing testing results from Jenkins builds, there
seems to be a problem finding the .sum files when the build is
complete.
* Started getting new Odroid boards online running Ubuntu.
== Plan ==
* Work on getting Canadian Cross builds working in Cbuildv2.
* Finish getting Odroid boards setup.
* Compare automated tarballs with the current release tarballs.
* Continuing with Jenkins/Cbuildv2/Git integration.
* Try to work around problem with importing test results.
== Issues ==
* Phone and network access has been randomly down for extended
periods. I assume it's flood repairs related.
== Progress ==
* GCC trunk cross-validation:
- stabilizing reporting (dealing with thread tests giving unstable
results when run under qemu, timeouts caused by overload of the
compute farm, ....)
- adding aarch64
* Backports:
- updated list (57 candidates for 4.8-2013.03), discussed
prioritization and collaboration with ARM.
- sent 1st branch-merge candidate for testing, as a preparation to
partially backport a bug fix from Richard.
* Aarch64 frame grows downward:
- modified test-case shows that code can be better with frame grows
downward than upward, depending on variables order and layout.
== Next ==
* Backports
- start backporting to prepare 2013.10 release
* AArch64 frame grows downward: continue
* Disable-peeling: resume work
== Progress ==
* Visit to Cambridge (Tue - Thu) and annual leave (Fri).
* Applied gas fix for neon vector load/store constraints.
* Applied glibc memcpy performance tweak.
* Applied gdbserver AArch64 fix to trunk and branch.
* Updated gdb release process and built a release candidate.
* Started glibc ARM pointer guard work
== Issues ==
* None
== Plan ==
* gdb 2013.09 release
* Various small items arising out of meetings last week
* Complete glibc ARM pointer guard
--
Will Newton
Toolchain Working Group, Linaro
== Issues ==
* None.
== Progress ==
* LRA on AArch64:
- Validate Vladimir's patch to support
HARD_REGNO_CALL_PART_CLOBBERED macro in LRA.
- Reduced and analysed libstdc++ failures : they were due to PCH
usage, but the issue was fixed with a rebase on trunk's head.
- Testsuite is now clean.
- Waiting for my rtl analyser patch to be accepted.
* LRA on AArch32:
- No more libstdc++ failures, they were PCH related too.
- One more issue in ARM mode testsuite, related bad REG_NOTES info
after LRA pass.
- Reduced failing Thumb testcase.
== Next ==
* Continue on LRA.
== Progress ==
* Spent week in Linaro's Cambridge office, had meetings with team mates.
* Visited ARM office in Cambridge and met toolchain team there.
* Submitted patch for GDB Record and Replay thumb32 support upstream.
* Reviewed and reproduced gdb bugs reported on launchpad and changed
their status according.
* Reviewed previously submitted gdb patches and replied to comments if required.
* Reviewed x86 record syscall code in GDB for adding support for
recording ARM syscall record.
* Updated JIRA cards or added new issues against bugs or features.
== Plan ==
* Progress on record and replay feature by testing instruction set support.
* Review all open JIRA cards for GDB
* Work on getting previous patches committed or resubmit new ones.
* Submit US visa application for LCU13.
== Issues ==
* None
== Progress ==
* 2 day off on Chinese Mid-Autumn Festival
* Update conditional compare (CCMP) patch according to community comments.
* Work out a patch to fix PR 58423.
* Prepare LCU'13 Visa and hotel.
== Plan ==
* Continue on CCMP.
== Panned leaves ==
* Sept. 24 AM: US Visa.
* Oct. 1-7: National Day of China holiday
== Progress ==
* Addressing patch review
- zero/sign extension preparation patch accepted.
- Christophe is helping to commit.
* spec2k comparison between ARM and x86
- Looked at conditional code generation related code in gcc
- looked at ifcvt and code in arm.md and arm.c to understand the
heuristics that dictate how much to conditionalize and what is causing
some of the problems I am seeing.
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Start looking at 64bit division