== Progress ==
* Android LLVM
- Discussions on progress, trying to line up kernel+AOSP together
- Google has bailed Clang/LLVM for L release, will consider for next one
* Vectorizer
- Progressing on the implementation of the pragma parser
- http://llvm.org/PR18086
- Discussions about introduction of generic function vectorizer (ARM)
* Release 3.4
- Tested RC3, no regressions on tests or benchmarks
- http://people.linaro.org/~rengolin/llvm/
- http://llvm.org/pre-releases/3.4/rc3/
- Looked at a bug on the vectorizer for pentium3/freebsd
- Work around found, not easy enough to get them to RC4
* Background
- Many discussions, many support requests, many patch reviews
- Adding BOF notes to dev meeting site
- Booking train and hotel for FOSDEM 14
* Time
- CARD-862 8/10
- Others 2/10
* Happy Holidays! And see you in January!
== Issues ==
* Running benchmarks on my Chromebook is very unstable.
- Even though the standard deviation is small in two different moments,
the two results are statistically incompatible.
- The wireless network on the Chromebook, as widely known,
is unstable and unpredictable.
- I need a graphical interface, so I can do stuff during Connects,
or to see Phoronix results and that is probably the responsible
for all instability
- Next release, I'll use an ODroid (or Arndale) for benchmarks
== Plan ==
* Holidays!
== Progress ==
- 2013.12 releases (4/10)
* Handover to Michael
* Committed remaining backports/branch merges
* Unexpected regression in 4.7 branch narrowed to a linker bug, now fixed.
- cross validations (2/10)
* stabilized armeb+qemu validations
- misc (4/10): misc conf-calls and meetings; internal meetings
== Next ==
Next 2 weeks off (Dec 23rd Jan 3rd)
Merry Christmas and happy new year to all of you.
Hello,
I am using the pre-built toolchain gcc-arm-none-eabi-4_6-2012q2 from linaro
to compile u-boot (u-boot-linaro-stable) and to compile my standalone
applications to run on target(PandaBoard ES rev b2)
hello_world standalone application which comes with u-boot is executing
fine on target when I disable CONFIG_SYS_THUMB_BUILD, but when I enable it,
target gets reset with following information
Panda # go 82000000 hello
## Starting application at 0x82000000 ...
undefined instruction
pc : [<8200000c>] lr : [<bff83147>]
sp : bfeffe40 ip : bfeffc10 fp : 00000000
r10: 00000003 r9 : bffac954 r8 : bfefff68
r7 : bff01d88 r6 : 82000000 r5 : bff01d8c r4 : 00000003
r3 : 82000000 r2 : bff01d8c r1 : bff01d8c r0 : 00000002
Flags: nzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
U-Boot SPL 2013.01.-rc1-g0f45941 (Dec 17 2013 - 14:23:41)
OMAP4460 <http://www.ti.com/product/OMAP4460> ES1.1
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.bin
reading u-boot.bin
......
Can anyone please help me why thumb mode build is failing?
On 18/12/13 05:06, Jonathan S. Shapiro wrote:
> At the risk of sticking my nose in, this isn't a startup code issue.
> It's a contract issue.
>
> First, I don't buy Richard's argument about memcpy() startup costs and
> hard-to-predict branches. We do those tests on essentially every
> *other* RISC platform without complaint, and it's very easy to order
> those branches so that the currently efficient cases run well. Perhaps
> more to the point, I haven't seen anybody put forward quantitative
> data that using the MMU for unaligned references is any better than
> executing those branches. Speaking as a recovering processor
> architect, that assumption needs to be validated quantitatively. My
> guess is that the branches are faster if properly arranged.
>
> Second, this is a contract issue. If newlib intends to support
> embedded platforms, then it needs to implement algorithms that are
> functionally correct without relying on an MMU. By all means use
> simpler or smarter algorithms when an MMU can be assumed to be
> available in a given configuration, but provide an algorithm that is
> functionally correct when no MMU is available. "Good overall
> performance in memcpy" is a fine thing, but it is subject to the
> requirement of meeting functional specifications. As Jochen Liedtke
> famously put it (read this in a heavy German accent): "Fast, ya. But
> correct? (shrug) Eh!"
>
> So: we need a normative statement saying what the contract is. The
> rest of the answer will fall out from that.
>
> I do agree with Richard that startup code is special. I've built
> deeply embedded runtimes of one form or another for 25 years now, and
> I have yet to see a system where optimizing a simplistic byte-wise
> memcpy during bootstrap would have made any difference in anything
> overall. That said, if the specification of memcpy requires it to
> handle incompatibly aligned pointers (and it does), and the contract
> for newlib requires it to operate in MMU-less scenarios in a given
> configuration (which, at least in some cases, it does), it's
> completely legitimate to expect that bootstrap code can call memcpy()
> and expect behavior that meets specifications.
>
> So what's the contract?
>
I disagree with your assertion that newlib *requires* it to operate in
an MMU-less scenario for all targets; it only does so when the target
can reasonably be expected to not have an MMU.
The only contract that exists is the one written in the C standard:
7.23.2.1#2 The memcpy function copies n characters from the object
pointed to by s2 into the object pointed to by s1. If copying takes
place between objects that overlap, the behavior is undefined.
But that is written on the assumption that we're in a normal execution
environment, not in some special case.
What you're missing is that AArch64 is (in ARM ARM terms) an A-profile
only environment where an MMU is mandated in the system. Furthermore,
processors implementing the architecture will *expect* that the MMU be
turned on as soon as possible after boot, since without this the caches
cannot be used and without those the performance will be truly horrible.
Once the caches are enabled, it's perfectly reasonable to assume that
memcpy will only be used for copies to and from NORMAL memory, since
other types of memory have potential side effects, which means that use
of memcpy would be unsafe.
If you want to write an MMU-less memcpy, then feel free to write one;
but please install it with a different interface -- something like
__memcpy_nommu(). Don't penalise the standard case for the non-standard
exceptional one.
R.
Hi all,
I have a bit of a strange one. I'm not after a full solution, just any
hints that quickly come to mind :)
After a few simple patches I have a build of mongodb for aarch64 (built
with gcc-4.8). However, all of the test binaries that the build spits
out immediately segfault. gdb-ing shows that they segfault inside this
macro:
TSP_DECLARE(OwnedOstreamVector, threadOstreamCache);
This expands to:
# define TSP_DECLARE(T,p) \
extern __thread T* _ ## p; \
template<> inline T* TSP<T>::get() const { return _ ## p; } \
extern TSP<T> p;
And indeed, it's mongo::TSP<mongo::OwnedPointerVector<...> >::get()
const that we're segfaulting in. This is the disassembly of this
function (at -O0) with the faulting instruction marked:
0x00000000004b4b6c <+0>: stp x29, x30, [sp,#-32]!
0x00000000004b4b70 <+4>: mov x29, sp
0x00000000004b4b74 <+8>: str x0, [x29,#16]
0x00000000004b4b78 <+12>: adrp x0, 0x64c000
0x00000000004b4b7c <+16>: ldr x0, [x0,#776]
0x00000000004b4b80 <+20>: nop
0x00000000004b4b84 <+24>: nop
0x00000000004b4b88 <+28>: mrs x1, tpidr_el0
0x00000000004b4b8c <+32>: add x0, x1, x0
=> 0x00000000004b4b90 <+36>: ldr x0, [x0]
0x00000000004b4b94 <+40>: ldp x29, x30, [sp],#32
0x00000000004b4b98 <+44>: ret
And the registers:
(gdb) info registers
x0 0x7fb863fd70 548554407280
x1 0x7fb7ff76f0 548547819248
x2 0x0 0
x3 0x7fb7fc11b8 548547596728
x4 0x1 1
x5 0x0 0
x6 0x50 80
x7 0x0 0
x8 0x0 0
x9 0x6165727473676f4c 7018141438804717388
x10 0x0 0
x11 0x0 0
x12 0x2 2
x13 0x10 16
x14 0x0 0
x15 0x7fb7e5e590 548546143632
x16 0x64b3d8 6599640
x17 0x7fb7f667d0 548547225552
x18 0x7fffffdab0 549755804336
x19 0x7fffffed50 549755809104
x20 0xb 11
x21 0xb 11
x22 0x6500b0 6619312
x23 0x650070 6619248
x24 0x7fffffff 2147483647
x25 0x64db40 6609728
x26 0x7fffffeda0 549755809184
x27 0x653d00 6634752
x28 0x7fffffe750 549755807568
x29 0x7fffffe4d0 549755806928
x30 0x4b4ed4 4935380
sp 0x7fffffe4d0 0x7fffffe4d0
pc 0x4b4b90 0x4b4b90 <mongo::TSP<mongo::OwnedPointerVector<std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> > > >::get() const+36>
cpsr 0x20000000 536870912
fpsr 0x0 0
fpcr 0x0 0
If I recompile this object file without -fPIC, it works.
I guess I see three things that could be wrong:
1) The operand to "adrp x0, 0x64c000"[1]
2) The operand to "ldr x0, [x0,#776]"
3) The value of tpidr_el0
Oh, and I guess:
4) The setup of tls has gone wrong and the address in x0 _ought_ to be
accessible but isn't for some reason.
Any hints on which of these seems mostly likely to be the culprit?
Chers,
mwh
[1] FWIW, objdump reports 0x64c000 as "_GLOBAL_OFFSET_TABLE_+0x2d0", not
sure why that doesn't show up in gdb's disassembly).
== Progress ==
* Bugfixing and testing QEMU AArch64 FP patches (3/10, VIRT-183)
* Debugging and submitting a patch for ARM gdb ifunc test failures (1/10)
* Two day week due to holidays
== Issues ==
* None
== Plan ==
* Back on the 9th January, have a good Christmas and New Year everybody!
--
Will Newton
Toolchain Working Group, Linaro
Hi,
We've noticed an issue trying to use the Linaro AArch64 binary bare metal
toolchain release with the MMU turned off for some low-level tests.
Anytime puts, sprintf, etc. gets called, a reent structure gets created with
references to STDIN, STDOUT, STDERR FILE types. A member in the __sFile
struct, _mbstate, is an 8 byte struct, but is not aligned on an 8 byte
boundary. This means that when memset (or a similar function) gets called on
this struct, and doesn't operate one byte at a time, a data alignment fault
will be generated when operating out of device memory, such as on a system
where the MMU has not yet been turned on yet.
I'm still examining possible fixes (I'll probably look at building with
-mstrict-align first), but I wanted to check if anyone had thoughts on the
subject and if Newlib upstream or Linaro consider using Newlib with the MMU
turned off to be a valid use case or if running the code that turns on the MMU
is considered a prerequisite to everything else.
Thanks,
Christopher
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.
== Progress ==
TCWG-293 (9/10)
- wrote and tested 64bit division code
- it seems to work
- still need to do performance testing
TCWG-347 Fix PR59142 (1/10)
- split into series of 3 patches
- patch almost ready, was held up by non-availability of the lab
- need to bootstrap on Thumb-1 to prove change made in response to
review comments
TCWG-346 AArch64 Benchmarking: CoreMark & Dhrystone
- no significant progress, no access to the lab
== Next ==
Pick up aarch64 benchmarking when the board becomes accessible again
Submit PR59142
== Progress ==
- 2013.12 releases (4/10):
* stalled due to lab unavailability.
* A couple of backports are waiting for approval, another one is
being debugged.
- cross-validation (4/10): fixed arneb+qemu validations.
- misc (2/10): misc conf-calls and meetings
== Next ==
- Make 2013.12 releases
- cbuild2: continue testing, try to make 4.7 source release
- libsanitizer on AArch64: resume work
== Future ==
Next 2 weeks off (Dec 23rd-Jan 3rd)
== Issues ==
* 1.5 day of due to car issue. (3/10)
* Calxedas are down after lab maintenance.
== Progress ==
* LRA on AArch32:
o TCWG-343 : Make LRA the default for the ARM backend (5/10)
- Turn LRA on by default committed as rev205887
http://gcc.gnu.org/ml/gcc-patches/2013-12/msg01088.html
- New Thumb regressions reported (Cortex-m0 and bootstrap),
analysis ongoing.
- Analysed last week regressions and reported them upstream,
Vladimir fixed them at rev205974.
- iWMMXT issue : work ongoing.
o TCWG-345 : Analyse performance of LRA for ARM. (0/10)
- No progress this week.
* Reviewed some merge requests. (1/10)
* Various meetings. (1/10)
== Next ==
* Continue LRA, merge and patch reviews.
== Progress ==
* Debugging and analysis of various gdb test suite failures [TCWG-34] [5/10]
Updated googledoc sheet with action items and comments on different failures.
Investigated remote core file generation issues.
Prepared a patch to turn off corefile dependent tests in remote configs.
* Debugged gdb.reverse testsuite failures [TCWG-197] [4/10]
Found a memory corruption issue where execution log is being corrupted
in memory.
* Time off for dentist appointment and office relocation stuff [1/10]
== Plan ==
* Figure out a reason and fix for process record memory corruption problem.
* Further analysis of test suite failures in arm-native Vs x86-native
and arm-remote Vs
x86-remote test results.
* Send patch to disable corefile tests in remote mode. Ping process
record and other previous patches.
== Progress ==
- Libssp GCC (4/10)
- Rebased GCC source and added patch for stack protect and test
based on global stack guard. Discussing with Marcus on
generic stack protect set and test versus machine descriptions.
Discussed with ARM and Glibc Maintainers, Dropped my patches
for TLS based stack guard.
- Cbuildv2 experiments (3/10)
- Built cross compiler with Cbuilv2.
- Discussing with Ryan on building tool chain without
cbuild.validation.linaro.org dependency
- PGO support for aarch64 (1/10)
Read a paper on PGO optimization in GCC
- Cross build some benchmarks(2/10). There were omp.h file missing
errors when Linaro tool chain was used. The issue is the tool chain is
not built with libgomp library. Rebuilt the tool chain after checkign
configuration changes with Zhenqiang Chen .
== Plan ==
- Inverstigate Pointer Guard support in Aarch64 glibc
- Continue tesing Cbuildv2
- Continue PGO investigations
== Issues ==
* None.
== Progress ==
* Enable libomp for aarch64*-linux-gnu builds in Linaro crosstool-ng.
* Backporting r200103 and r205509 to Linaro 4.8.
* Try to enable lra and test Spec2k with -fno-move-loop-invariants and
-fira-loop-pressure. But still no overall performance improvement.
(2/10)
* Try conditional compare related changes (CARD 313: 3/10)
- Set LOGICAL_NON_SHORT_CIRCUIT to false in fold-const.c.
- Do ifcombine twice.
- Logs show lots of new FAILs in vrp related cases and no
performance improvement in Spec2k INT.
* Identified the root causes of "uninit warning testsuite failures"
(CARD 304: 3/10)
- Some values are from PHI, which is not handled when checking subset.
- Function is_included_in is conservative. Here is its comments:
/* ... It returns false if ONE_PRED's domain is
not a subset of any of the sub-domains of PREDS (
corresponding to each individual chains in it), even
though it may be still be a subset of whole domain
of PREDS which is the union (ORed) of all its subdomains.
In other words, the result is conservative. */
== Plans ==
* 2013.12 toolchain binaries release.
* Continue on CARD 313 and 304.
== Progress == (4/10)
* TCWG-372 fix Cbuildv2 parsing to handle the new binutils-gdb repository (4/10)
- Completed Card with following commits.
commit e6e39f5d1f7963332b3d7dd2e4400de91847219c
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 10 16:08:17 2013 -0600
Correct get_toolname to work with unified repo: binutils-gdb.git
Secondary fixes required:
- Set config/binutils.conf and config/gdb.conf to use unified repo
binutils-gdb.git.
- Re-enable binutils-gdb.git in config/sources.conf.
- get_toolname now calls get_git_tool and determines the actual toolname
for binutils and gdb from the branch name if the repository is unified.
- Made all other usages of get_git_tool use get_toolname instead.
- checkout() now uses ${repo} as returned from get_git_repo as the git
repository instead of ${tool}.git. This allows a unified repository to
only be checked out once.
- The git parser now determines whether an http:// in a url means a git
service or an svn service.
- The git parser now returns branch names for launchpad urls with branches
in the url.
- The git parser now returns the tool name properly for an svn service.
- The git parser testsuite now has testcases for all new additions.
Also
- Added --snapshots functionality to allow specifying an existing snapshots
directory.
- Add testcases to test.sh to test --snapshots functionality.
- Changes test.sh --snapshots directive to --md5sums to avoid confusion
with cbuild2.sh --snapshots.
* TCWG-323 Interface hardening (5/10)
- Card in progress with following commits:
commit cc7193d8ddb86c4ed7d16086f8ee968ae4bae87f
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Thu Dec 12 11:40:00 2013 -0600
cbuild2.sh: All error exit paths should use build_failure().
commit 2a4ec7fa0b7c48e0c6e05a7549f64e3336022f45
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Wed Dec 11 14:08:51 2013 -0600
cbuild2.sh: Added check_directive() to unify bounds checking.
Also added accompanying top-level test.sh fragments to test
check_directive.
Change-Id: Ia42a4b241a5ca62d41dccf1d8e023980ad0a04d0
commit c9ec21200260bdb26d9fe9b26d7ce390579a0ca2
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Wed Dec 11 13:07:15 2013 -0600
test.sh: Fixed to work with a temporary host.conf file.
Require change due to commit 3b5c576630a8ac08cd3b9ab9eab781308549a858
which requires a host.conf file for finding the cbuild topdir.
Change-Id: I991bb5f2a7949267bf69fba093d6becd202ad138
commit 16a45027be798b06160916234713f5dc35b2ecbb
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 10 18:16:09 2013 -0600
cbuild2.sh: Bounds check --set input.
Change-Id: I8ebffd1809b17962aef58f2a08277d5f639d7e3e
commit d7ee602c24231e24457c93208f749cbdd0357115
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 10 18:03:04 2013 -0600
cbuild2.sh: Remove --srcdir. It didn't do anything.
Change-Id: I5b99c7ae8dc542cb62516104bd0bf9d1888afc52
commit 53e9c74966442c41cc9512f27f46ef849d62bcc8
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 10 17:58:54 2013 -0600
cbuild2.sh: Remove --dispatch support. It didn't do anything.
commit 289ade38f100872653218da4792fbb1650d3b231
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Wed Dec 11 10:27:37 2013 -0600
cbuild2.sh: Bounds check --release switch.
Change-Id: I90804ea02b995d476b148fb68db955d164bc674c
commit 9bae259ebbff193e29899edf8a47190747d2bc1b
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Wed Dec 11 10:09:00 2013 -0600
lib/configure.sh: Add missing closing "
Change-Id: I9eee9a934a6cbb60bd1e2db6b0af9faf19fa5188
commit 16a45027be798b06160916234713f5dc35b2ecbb
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 10 18:16:09 2013 -0600
cbuild2.sh: Bounds check --set input.
Change-Id: I8ebffd1809b17962aef58f2a08277d5f639d7e3e
commit d7ee602c24231e24457c93208f749cbdd0357115
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 10 18:03:04 2013 -0600
cbuild2.sh: Remove --srcdir. It didn't do anything.
Change-Id: I5b99c7ae8dc542cb62516104bd0bf9d1888afc52
commit 53e9c74966442c41cc9512f27f46ef849d62bcc8
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 10 17:58:54 2013 -0600
cbuild2.sh: Remove --dispatch support. It didn't do anything.
Change-Id: I4b6ee8db0d3e74510b95c816469b0c100207972f
* Misc (1/10)
- Now using gerrit with git review for handling cbuildv2 development.
- Reviewed V Chong's proposed outline for toolchain documentation and
made suggestions and edits.
== Plan ==
* Move onto working primarily on glibc Jira cards.
== Issues ==
* Lab migration took cbuild.validation.linaro.org down for several
unplanned days and therefore toolchain sources were unavailable during
that time. I made do by adding some features into cbuildv2 to use
alternative snapshots directories.
== This week ==
- Completed backport of 202259, 202407, 202020, 201261 and 201263
- Submitted merge requesSt for completed backports
== Next week ==
- Begin work on other assigned backports
== Future ==
Document missing features of cbuild for backports
== Progress ==
* Pragma Vectorize
- Comparing pragma OMP to mimic for vectorize
- Implementing the lexer/parser
- http://llvm.org/PR18086
* Android LLVM
- Wasting time for the last time with Odroid XU and Android
- Will focus on Nexus 4, 5 and 7
* Integrated AS
- Changed to enabled by default
- Discussing some bugs found on Android unwind library (inline asm)
- http://llvm.org/PR18231
* Release 3.4
- There were some muddled merges, folks are trying to fix
- Bero found a serious bug, seems to be result of the bad merge
- http://llvm.org/PR18201
- Tested RC2, waiting for RC3
* Background
- Discussions, lots of patch reviews
* Time
- CARD-862 8/10
- Others 2/10
== Plan ==
* Continue implementing pragma vectorize in Clang
* Wait for the next release candidate, test, benchmark
* Follow up in the IAS issues raised
* If RemoteChild is gone by then, continue the MCJIT refactoring
* Have a look at TableGen users
== Issues ==
I saw a black cat, under a ladder, with a hockey mask...
== Progress ==
* Bugfixing and testing QEMU AArch64 FP patches (7/10, VIRT-183)
* Debugging and submitting a patch for issue with Ruby and ARM pointer
encryption (2/10)
* Other miscellaneous work: glibc patch review, binutils testsuite
patch, expenses (1/10)
== Issues ==
* None
== Plan ==
* 2 day week next week then off until Jan 8th
* Wrap up qemu work to a good state to handover
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
- cross-validation: (1/10). Follow-up, minor maintenance and
discussions on a few regressions. Now able to share top-level
reports.
- backports (1/10):
* multilib_defaults for 4.7
* committed all approved backport
* helped Michael solve some conflicts
- disable peeling: (3/10)
* confirmed it is now done by default on trunk, as part
-fvect-cost-model=XXX.
* Looked at benchmarks, comparing
-fvect-cost-model=cheap (default) and
-fvect-cost-model=unlimited.
- benchmarks on trunk (1/10): observed some variations from one month to
another on a few cases (checked June-November). This confirms
the need to run benchmarks regularly on trunk, in addition to
release branches.
- cbuild2 (3/10): continued working on source release. Submitted a few
small patches for review+integration.
- misc (1/10): various conf-calls and meetings.
== Next ==
- Make 2013.12 releases
- cbuild2: continue testing, try to make 4.7 source release
- libsanitizer on AArch64: resume work
== Issues ==
* Tcpanda03 seems unusable.
== Progress ==
* LRA on AArch32:
o TCWG-345 : Analyse performance of LRA for ARM. (5/10)
- Installed Saucy on Chromebook, lot of time wasted due to defective SD card
- Frequency governor now set to performance.
- Benchmark setting ongoing
- Tcpand03 SSH access re-enabled, board setting seems ok, but respawned
benchmarks are stuck and the board is no more reachable
o TCWG-343 : Make LRA the default for the ARM backend (2/10)
- Reduce iWMMXT testcase, analysis ongoing.
- Trunk testsuite with LRA shows a couple new faillures.
* Reviewed some merge requests. (1/10)
* Loop specialization patch review started. (1/10)
* Various meetings. (1/10)
== Next ==
* Continue LRA, merge and patch reviews.
== Progress ==
* Updated, tested and submitted new patches for a couple of gdb
testsuite failure on arm. [TCWG-269] [TCWG-34] [1/10]
* Performed GDB git repository testing suite results comparison:
[TCWG-34] [2/10]
Compared results and prepared googldocsheets for the following:
arm-native Vs arm-remote
arm-native Vs x86-native
arm-remote Vs x86-remote
* Investigated difference/failures in arm-native vs arm-remote
comparison sheet. [TCWG-34] [5/10]
Re-ran timeout failures with different values of timeouts.
Figured out causes of failures.
Figured out why some tests exit without emitting any logical result.
* In response to comments upstream tried to figure out alternate fix for
dwarf2 fortran parameter test. [TCWG-267] [TCWG-34] [1/10]
* Miscellaneous activities [1/10]
== Plan ==
* Analyze new failures in arm-native Vs x86-native and arm-remote Vs
x86-remote test results.
* Fix test suite failures and submit patches if any.
* Spend some time pining/updating/re-submit previous patches.
== Progress ==
- libssp gcc
Initiated mails for upstream discussion on supporting global and TLS
based libssp ABI for Aarch64. Now waiting for feedback from ARM
maintainers.
- Built few benchmarks with Linaro tool chain binaries. Faced some
openmp failures, compiler disabled for libgomp. Looking to rebuild
the linaro cross tool chain.
- Rebased glibc trunk and ran cross glibc tests on V8 foundation
model. With TLS SSP patch glibc's libresolve.so fails to build
because the stage 1 GCC compiler emits global stack_chk_guard. The
glibc dos not export global stack_chk_gaurd, when TLS based stack
guard is set. Now looking at supporting and test both TLS and global
stack guard ABI, but before that waiting for confirmation from ARM
maintainers.
- Reinstalled linux 13.04 ubuntu on my laptop
- Tested the patch
http://gcc.gnu.org/ml/gcc-patches/2013-12/msg00170.html for
aarch64-none-elf target. No regressions found.
== Plan ==
- Continue upstream discussions and post RFC patches for glibc and gcc libssp
- Explore on cbuildv2
- Cross Build few openmp benchmarks
== Issues ==
* None.
== Progress ==
* 1.5 days off.
* Misc update for Linaro crosstool-ng
- Re-enable parallel build for do_cc_core.
- Add linaro-armeb-none-eabi config.
- Update all CT_TOOLCHAIN_PKGVERSION to "Linaro GCC 2013.11"
* Share toolchain binaries configures to cbuild2 group.
* Backporting r200103 and r205509 to linaro 4.8.
* Collect Spec2k INT results with -fno-move-loop-invariants and
-fira-loop-pressure on X86-64 and ARM Chrome book. Performance of
different cases waves from -2% - 2%. But the overall performance
changes < 0.5%.
== Plan ==
* Continue on CCMP.
== Progress ==
* Setup new git mirror of new binutils-gdb.git repository, and
added a cron job to update it every 10 minutes. (#369, .5/10)
* Started modifying Cbuildv2 to use new binutils-gdb
repository, which changes how we parse URLs. (.5/10)
* Modified Cbuildv2 to produce fully statically linked binaries so
32bit ones run on any distro, including 64 bit. (#368, 3.5/10)
* Worked with LAVA team to set up a private Jenkins for TCWG use
only to protect test and benchmark data. (#379, 2/10)
* Fixed Cbuildv2 bug where the dryrun function wasn't properly
trapping configure and build errors. (.5/10)
* Meetings & Card maintainance. (2/10)
* Quick winter camping trip at the hot springs for my bday, hit -38C !
== Plan ==
* More tweaks to source and binary tarball creation.
* Finish modifying Cbuildv2 to use new binutils-gdb repository.
* Fix all the minor bugs caused by properly trapping errors from
dryrun function.
* Make the new Jenkins build in a 32 bit chroot on the TCWG build
machines
* Figure out why Jenkins doesn't import the Junit files.
* Copy .sum files to remote host.
* If new Arndale or APM boards arrive this week like promised,
start evaluating them.
* Get the S&M team to start using Gerrit for merge requests for
Cbuildv2.
== Progress ==
* TCWG-367 drop --dostep, add --checkout (1/10)
Completed with following git commits:
commit 2d4d7588c1b05801ee5e1a924c8641ff7c322c07
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Fri Dec 6 11:46:40 2013 -0600
cbuild2.sh: remove --dostep. It's no longer supported.
Also added testcase to make sure it returns an error.
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Fri Dec 6 10:57:34 2013 -0600
Add cbuild2 --checkout <package>|all support with tests
* misc (1/10)
commit 9fb1c4404f8065ef844154e614ff4e7086fce176
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Thu Dec 5 12:21:20 2013 -0600
lib/package.sh: git status should be run in the current directory.
commit 7bb4a9ce8ef440655fe45e6819b57da8d61e8728
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Wed Dec 4 11:47:56 2013 -0600
lib/package.sh: git st should be git status.
* TCWG-356 Unify GIT URL parsing (5/10)
* TCWG-359 Change branch character (2/10)
Closed with following git commits:
commit c9368930e6fb1ad46d08c2dbcc34d8167344ad28
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Tue Dec 3 16:29:00 2013 -0600
Finish git parser refactoring, use stamp functions, complete
dryrun wrapping.
commit eabbc74e48bc8c3a4addbc53ec6a492521193a0c
Author: Ryan S. Arnold <ryan.arnold(a)linaro.org>
Date: Wed Nov 27 16:31:20 2013 -0600
Working additions for git parser refactor and stamping.
== Issues ==
*misc (1/10)
- Discovered a bug in glibc when using upstream (4.9) gcc that isn't
present in 4.8. This might have something to do with how binutils
interacts with the compiler instead of simply a compiler issue:
elf/dl-addr.c:152: multiple definition of `_dl_addr_inside_object'
elf/dl-open.c:746: first defined here
== Plan ==
* Create card for new glibc multiple definition problem,
* Start working on glibc related cards
== This week ==
- Completed backport of 197997
- Completed backport of 203774
- Worked on GCC 4.8 FSF Release Branch Merge and initiated merge request
and build
== Next week ==
- Work on GCC 4.7 Release branch Merge
- Begin work on other assigned backports
== Future ==
Document missing features of cbuild for backports
== Progress ==
* MCJIT (2/10)
- Disabling Remote MCJIT for now, just to add the self-hosting bot
- Working on a more robust message passing interface
- http://llvm.org/bugs/show_bug.cgi?id=18057
- Progress stalled, waiting for changes to child process handler
* Buildbots (2/10)
- Adding Chromebook self-hosting buildbot
- http://lab.llvm.org:8011/buildslaves/linaro-chrome-02
- Adding Odroid XU check-all buildbot
- http://lab.llvm.org:8011/buildslaves/linaro-odroidxu-01
* Vectorizer (2/10)
- Implemented #pragma vectorize enable in LLVM
- http://llvm.org/bugs/show_bug.cgi?id=18086
- Adding support in Clang to add metadata to IR for all three pragmas
* Android (1/10)
- Trying LLVM kernel on XU again
- Managed to get adb/astboot to work
- Custom kernels won't boot, Tinti will create a full image (CM+LLVM)
* Release 3.4 RC2 (1/10)
- Testing, no regressions
- Some benchmarking regressions, investigating
- http://llvm.org/pre-releases/3.4/rc2/
* Background (2/10)
- Reviewing patches, discussions, meetings, etc
== Plan ==
* Continue implementing pragma vectorize on Clang
* Further release 3.4 testing and benchmarking
* Continue investigating benchmark results for 3.4
* Re-start MCJIT MPI once changes to the child process handlers are in
Hi,
According the debian bug report [1], it is not possible to use std::future
on armv5 targetting toolchains. This is because libstdc++ will only enable
std::future if ATOMIC_INT_LOCK_FREE > 1. There is no LDREX for armv5 and
older, so this definition is set to ATOMIC_INT_LOCK_FREE when compiling for
ARMv4t or ARMv5.
My impression is that you should be able to use the kernel helpers for
atomic operations in lockfree (?) manner, so the ATOMIC_INT_LOCK_FREE
definition is probably incorrect on older arm archs then?
Riku
[1] http://bugs.debian.org/727621
== Progress ==
* Disable peeling:
- spawned benchmarking jobs using recent trunk and another older
one to check for performance regressions.
- locally generated the code for the same benchmark to analyze the
differences
* cbuildv2:
- retried to create 4.8-2013.11 source release. Identified a couple
of minor issues, reported to Rob.
- for 4.7-2013.11, need support for subdir in git URLs, fix on-ongoing by Ryan
* Backports:
- gave some support to Michael
- a few have been reviewed/accepted.
* libsanitizer: little progress this week; advised to take a look at
recent LLVM sources.
* trunk validation: filed some bugzilla reports; 2 of them fixed by Kyrill.
== Next ==
* Disable peeling:
- check benchmarks results
- check code generation
* cbuildv2: re-do source releases 4.8 and 4.7 2013.11
* Backports:
- commit already approved ones, once cbuildv2 releases are OK
- see which ones can be easily added
- work on MULTILIB_DEFAULTS backport for 4.7
== Issues ==
* None.
== Progress ==
* LRA on AArch32:
o TCWG-342 : UPSTREAM: LRA issue in gfortran with store minmaxsi
- Committed as rev205526 .
- Card resolved.
o TCWG-344 : UPSTREAM: Thumb bootstrap failure with LRA
- Committed THUMB_SECONDARY_INPUT_RELOAD_CLASS patch as rev205527.
- Committed PR58785 patch as rev205581.
- Card resolved.
o TCWG-345 : Analyse performance of LRA for ARM
- Gathered results and analysis still ongoing.
o Working on a new failure with iWMMXT (LRA loops during constraints solving).
* Reviewed some merge requests.
== Next ==
* Continue on LRA
* Loop specialization patch review.
== Progress ==
* Investigated remaining testsuite failures in ARM process record/replay.
* Tested VFP, SIMD and other advance instruction types recording.
* Ran GDB testsuite in various configurations on gdb7_6_1 code base
and latest git repo.
* Learnt some prologue and epilogue analysis heuristics for resolving
process record bugs in arm.
== Plan ==
* Analyze test results from gdb testsuite runs in various configs and
update JIRA issues.
* Complete testing of VFP, SIMD and other advance instruction types
recording patch and Send updated patch.
* Try to find a epilogue analysis heuristics for resolving reverse
stepping issues in solib code.
== This week ==
- Completed backport of 202872
- Final checkin to upstream GCC SVN will be complete by Christophe Lyon
== Next week ==
- Begin work on other assigned backports
== Future ==
Document missing features of cbuild for backports
== Progress ==
- libssp gcc
Posted RFC V2 patch to community. Updated comments from Richard and
wating for some feed backs.
- Libssp glibc
- Sent out a patch for stack_chk_guard in Aarch64 along with TLS
stack guard support.
== Plan ==
- post RFC patches for glibc and gcc libssp
- explore on cbuildv2
29-11-2013 Friday - Leave (AMD internal event) .
== Progress ==
* Setup 64 bit centos-5 and suse-10 chroots for testing binary
tarballs, and used them to verify the Cbuildv2 produced ones
compile 'Hello World!", and run on a real target.
* Got remote chromebook testing working in TCWG build farm.
* Worked on getting GDB remote testing with gdbserver working.
* Did build and test run on aarch64 APM board of GCC
linaro-4.8-branch.
* Changed Cbuildv2 to disable parallel make jobs when building GCC
native on ARM or AARCH64 platforms, as the hardware can't handle
the load.
* Got the LSB tools installed and researched what they do.
* Debugged why 32 bit binary tarballs made in a chroot won't run
when installed on multiple x86_64 systems. Works now by statically
linking everything.
* Got test results, converted to Junit format for Jenkins.
* More TCWG build farm admin issues.
== Plan ==
* Continue working on GDB remote testing in the build farm.
* More tweaks for binary releases.
* Continue trying to get GCC trunk to build on APM board.
* Figure out why Jenkins doesn't import the Junit files.
* Probably more TCWG build farm admin issues, which is probably
a continuing task, so I'll stop listing it every week.
== Issues ==
* If I try to monitor a Jenkin's build via the "Console", it
crashes my browser as the logs get huge.
* Long weekend for Thanksgiving holiday means short work week...
== Leave ==
* Off this coming Thursday for my birthday...
== Progress ==
- cbuild2 benchmarking
- Resolved access issues and imported into repository
- continuing with the missing implementations
- 64bit division for ARMv7-A
- Algorithm is committed to trunk
- enablement patch is posted for review
- trunk bootstrapping issue
- Setup foundation model and resolved space and kernel panic issues
- There is a assembler compatibility issue with older assembler
(-mabi=lp64); trying with the latest binutils
- AARCH64 bootstrapping in progress with this
- AARCH32 bootstraps with glibc but ran into issues with eglibc.
== Plan ==
- Address zero/extension review comments
- investigative bootstrapping issues
- continue with cbuild2 benchmarking
== Issues ==
* None.
== Progress ==
* Commit the fix for test case (lp1243022.c) by skipping arm-neon.
* Spawn arm-none-eabi build for Linaro 2013.11 release.
* Report PR59282: SPEC2K 252.eon ICE.
* Rebase conditional compare patch to trunk and tests.
- Update simplify_while_replacing to skip swapping compare in
conditional compare.
- Check whether operands of gen_ccmp_next clobber cc or not.
- Add a short description about the over all algorithm.
* Investigating loop-invariant impact on SPEC2K INT for x86-64 and
ARM. Testing is ongoing,
== Plan ==
* Continue on CCMP.
== Planed leaves ==
* Dec 3 & 5: Annual leaves
== Progress ==
* Buildbots
- Work-around for ClamAV (r195646), new bot in!
- http://lab.llvm.org:8011/buildslaves/linaro-chrome-03
- After a week stable, I'll deactivate the old chromebook and re-fit it
- Looking at MCJIT random breakages on A15 self-hosting tests
- http://llvm.org/PR18057
- Proposed a fix, http://llvm-reviews.chandlerc.com/D2287
- Installed Arch on the ODroid XU, running a local buildbot on it
- Investigating llvm-rtdyld but in reading debug information
- http://llvm.org/PR18085
* Vectorizer
- Mapping, discussing and proposing implementation for pragmas
- http://llvm.org/PR18086
- http://llvm-reviews.chandlerc.com/D2289
* Release 3.4 RC1
- Running benchmarks comparing 3.3 with 3.4
- EEMBC within noise levels for geomean
- O3: ~0.2% faster, ~0.7% bigger
- Os: ~1.3% slower, ~0.6% bigger
- Phoronix, ImageMagick: OK within std dev
* LLVMAndroid
- Tinti compiled the kernel 3.4 and some libs with LLVM
- Trying to put Android on the ODroid XU (the official one is quite poor)
- XU redirected to set as a buildbot, once ready, I'll use the other
for Android
* Background
- Lots of patch reviews, discussions
- Helping Graphics WG with Clover
== Issues ==
Still ill because of implant, on/off throughout the week.
== Plan ==
* Put the self-hosting bot up once it's fixed
* Fix the XU bot
* Try LLVM Android on XU again
* Continue with the simple vectorization pragmas
* Waiting on benchmark test-suite mode to create a new benchmark test-suite
== Progress ==
* lib/git-parser.sh: Add support for ~ as branch designator and
multi-/ branches.
* Refactor cbuild2 to use git parser
* Created stamp functions for cbuild2
US Thanksgiving Holiday
== Next ==
* Finish refactor of cbuild2 to use git parser.
* Create unified parser that wraps git parser.
* Finish refactor of cbuild2 to use stamp functions.
== Issues ==
* None
Forgot to hit send on this one
== Progress ==
* Add documentation for git-parser.sh.
* lib/git-parser.sh: Add no-url support.
* testsuite/test.sh fix invocation of testsuite/git-parser-tests.sh
to include ${topdir}.
* Add lib/git-parser.sh and testsuite/git-parser-tests.sh.
* Fix corner cases with <user>@<url>/<repo>.git[/branch]@<revision>
1) Allow http urls to be processed by 'git' cases.
2) Error check git-new-workdir and git checkout
3) Parse revision and branch properly when there might be a <user>@
in the url.
* testsuite/test.sh: Update for breath to cover
user@<url>/<repo>.git@<revision>
* Fix get_srcdir to work with <user>@<repo>.git/branch@revision
* Fix get_toolname and get_srcdir when using <user>@<repo>.git@revision
== Issues ==
* None
== Next ==
* Have cbuild2 start using the git parser
== Issues ==
* Still some cbuild oddities.
== Progress ==
* LRA on AArch32:
o TCWG-342 : UPSTREAM: LRA issue in gfortran with store minmaxsi
- Performance validation is OK, confirmed by kyrill.
- Waiting for approval.
o TCWG-344 : UPSTREAM: Thumb bootstrap failure with LRA
- Pinged for THUMB_SECONDARY_INPUT_RELOAD_CLASS patch review
- Validate and post patch for PR58785:
http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02459.html
o TCWG-345 : Analyse performance of LRA for ARM
- Analysing results mismatch between 2 pandas
- Configured and ran spec2000 on Chromebook
- Analysis ongoing
== Next ==
* Continue on LRA
* Reviews
== Progress ==
* Released GCC 4.7 and 4.8 2013.11 releases.
* Investigated potential regressions on trunk, as reported by
continuous cross-validation.
Reported some cases to Kyryll. Another, reported to Bin, turns out
to be an unrelated, unstable testcase recently introduced.
Will have to give a closer look at big-endian tests.
* Updated libsanitizer patch for AArch64. It builds again but is not
functional yet (running in the Foundation model currently); getting
support from libsanitizer developers. Support for AArch64 will have to
be committed in LLVM, and merged into GCC later. I'm going to continue
prototyping under GCC though, and will submit changes to the
libsanitizer team when ready.
* GNU tar regression (extended_negsidi pattern): posted bugzilla,
fixed by Richard.
* cbuildv2: gave another try, pointing to staging.g.l.o, to discover
that it was outdated too. Rob has fixed it since then.
* Backports: gave some support to Michael Collison to help him get to speed.
Prepared backport of Zhenqiang's "enhance phiopt
to handle BIT_AND_EXPR" (TCWG -303)
== Next ==
* Resume "disable-peeling" work. Mostly check that the current trunk
contains what we want.
* cbuildv2: retry to create source release 2013.11
* Backports: commit TCWG-303, and Charles' backport of his testsuite fix
look at the others in the list.
* libsanitizer for AArch64: make it functional
== Progress ==
* GDB ARM Process Record:
- Completed work on arm process record Advance SIMD, vfp and coprocessor
instruction recording.
- Submitted initial patch for SIMD. VFP and coprocessor instruction
decoding.
- Resubmitted previous patches after incorporating suggestions.
- Resolved patch line wrap issues and formating issues.
* Macau visa and travel planning
* Got started with using concur
== Plan ==
* GDB ARM Process Record:
- Follow up on previous patches.
- Test VFP, SIMD and other advance instruction types recording.
- Fix issues and submit their fixes if any.
* Run GDB testsuite in various configurations and analyze failures.
== Progress ==
* Created 32 bit chroots on all 6 TCWG build machines, did test
toolchain builds via Cbuildv2, including a Canadian cross. I
tested the win32 executables with wine and they work.
* Setup all 6 TCWG build farm chromebooks to be able to do native
builds and run tests with Cbuildv2.
* Multiple discussions with LAVA team about Jenkins, Gerrit, LAVA,
and GIT repositories. We need to have LAVA & Jenkins installed on
our new x86_64 build machines in a way they can do builds in a
32 bit chroot.
* Got Gerrit working with GCC and Cbuildv2 GIT repositories on
staging.git.linaro.org, and merge requests ala 'git review' now
work and can get approved. (Thanks to Milo)
* Got the GCC git repository on staging to be in sync with upstream
finally, as it wasn't auto updating. (Thanks to Milo)
* Modified Cbuildv2 to get the host and build architectures right
when building in a 32 bit chroot on a 64 bit build machine.
* Fixed other weird issues in Cbuildv2 when building in a 32 bit
chroot on an x86_64 platform.
* Started process to get Kugan access to the APM board for
benchmarking.
* Got Jenkins doing builds and test runs on the new TCWG build
machines.
== Plan ==
* Get back to remote chromebook testing support for build machines.
* Debug why 32 bit binary tarballs made in a chroot won't run when
installed on an x86_64 system.
* Probably more TCWG build farm admin issues.
== Progress ==
- libssp gcc
- Posted RFC patch to community. Addressing gcc/glibc compatibility issues.
- libssp glibc
- Working on exporting stack_chk_guard in Aarch64 along with TLS
stack guard support.
== Plan ==
- post RFC patches (version 2) for glibc and gcc libssp
== 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