=== Work done during this GCC week ===
* TCWG-1379 (stack-protector failure on GCC ARM): need feedback from
community
+ reproduce on trunk and find out why it happens on ARM and not AArch64
or x86
+ find potential issue for all targets as well, though less likely
+ find discrepencies between code and documentation and wondered if code
is not overly zealous in some case
* 2 days doing Arm handover & meetings
=== Plan for next week (week 12) ===
* Progress on stack-protector failure
* Support arithmetic on FileCheck regex variable: finish patch
Progress:
* VIRT-65 [QEMU upstream maintainership]
+ sent another patch related to linux-user signal frames (a wrinkle
I had thought had no effect with SVE disabled turns out to be
relevant in the no-SVE case too)
+ testing and applying patches for 2.12 rc4
+ code review:
- latest spin of the SMMUv3 emulation patches
- some last-minute fixes to our softfloat refactoring
- memory barrier handling in the 32-bit arm TCG backend was broken
+ tracked down a zephyr test failure on QEMU as the same bug in
the Zephyr timer device driver as the one I reported 6 months ago...
+ sent a patch fixing linux-user emulation of getdents syscall for
64-bit guest on 32-bit host
+ sent a patchset that removes the long-standing "only 4 serial ports"
limit in QEMU (various Arm boards really have 5 or 6)
+ some patches fixing errors in arm boards that don't properly
register all their RAM regions for migration
thanks
-- PMM
[VIRT-198 # QEMU: SVE Emulation Support ]
Cleaning up patches and fixing RISU failures.
[UPSTREAM]
Review of the tb_lock patch set.
Finish review of the v2 TranslateOps patch set.
Pushed a couple of softfloat fixes and an icount fix for 2.12.
r~
Note1: working for Linaro every other week
=== Issues ===
* IT issues made me loose 1 day of work
=== Work done during this LLVM+GCC week ===
* LLVM PR34170 (crashes with inline asm with double output operand in GPR):
internal review
+ improved patch to also support case with several output operands
-> had to choose to relax test a bit to not put expectation on
register allocator
* Support arithmetic on FileCheck regex variables: in progress
+ an attempt to be able to express that 2 registers are related by some
arithmetic expression (eg. vmov dY, rX, rX+1), seems doable
Upstream work on Arm GCC side:
cmse_nonsecure_caller return wrong answer: backported to GCC 7
* __builtin_arm_set_fpscr crashes with literal values input: committed to
trunk, backport oked
+ do more testing and prepare backport to GCC 6 & 7
* PR85344 (GCC fails constraint check on valid code): in progress
+ 2 prototype patches done but inconclusive result
+ pondering what should be the expect behaviour
+ investigating the extent of the problem -> both immediate and register
constraints can be surprising
=== Plan for next week (week 12) ===
* Investigate stack-protector failure with Linaro GCC 7 toolchains
* DSGHACK-25 (Support arithmetic on FileCheck regex variable): finish patch
=== Planned leave ===
* 28th April -> 29th May Sabbatical (Trip to France, then China, then
France again)
Progress:
* VIRT-65 [QEMU upstream maintainership]
+ sent patch fixing problem where some aarch64 binaries would segfault
under linux-user (changes for SVE accidentally caused them to get
a too-small signal frame)
+ wrote an RFC kernel patch which sanitizes the ESR value reported to
userspace for faults on kernel addresses, rather than dropping it
entirely
+ wrote a patch to fix a reported QEMU compile failure for Arm
guests on MIPS hosts
+ code review:
- various bug fixes for 2.12
- another round of the patchset to implement the PMU properly
- DS1338 RTC device emulation overhaul patches
- QEMU side of changes to allow more than 123 CPUs with KVM
(mostly involving allowing split GIC redistributor regions)
- linux-user FDPIC ABI support
Hopefully next week I'll be able to get back to non-release
related work...
thanks
-- PMM
* Short week: off Mon/Tue/Wed
== Progress ==
* GCC
- FDPIC
- binutils: patch series approved, waiting for clarification on target name
- GCC: cleaning patch series, fixing lto problems
* GCC upstream validation:
* Infrastructure:
- Linux kernel + lava failing: still failing, it seems the fix
hasn't been merged yet
- TCWG-1335: GCC validation results now sent to gcc-testresults
- looked at some random problems (?) in our GCC validation
* misc (conf-calls, meetings, emails, ....)
== Next ==
* FDPIC:
- Handle feedback on binutils and QEMU patches
- GCC continue cleanup
* GCC upstream validation
Hi Team,
Could you please let me know which version of toolchain released from Linaro starts to support LTO? Thanks
David
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.
[TCWG-1375] Make sure MCSubtargetInfo is passed through to
ARMAsmBackend functions
Spent most of the week working on this and follow up patches. Have
submitted a patch for the most important functions. Nearly have one
ready for the correct Nop encoding, this is more complicated as Nops
can be used as padding.
[Plans]
In office Monday Tuesday only.
Progress [TCWG-1375]
Planned Absences:
- At ACCU conference Wednesday - Friday [Holiday]
- At Euro LLVM following Monday Tuesday
[VIRT-198 # QEMU: SVE Emulation Support ]
Cleaning up patches and fixing RISU failures.
Most of these have thankfully been errors in
last week's first pass reordering of the
sve_access_check. Typically wrt when we find
the address of a register vs the location of
the check vs assert_fp_access_checked.
[Upstream]
Examined a bug affecting aa64 guest on ppc64 host,
but only when using gcc 4.8.5 and not gcc 7.2.
Fixed; in the end a minor typo on the code,
but highly annoying to track down.
r~
o 1 day off
== Progress ==
o LLVM
* Buildbots babysitting:
- Investigate LNT failure due to virtualenv and pip versions (Now fixed).
* Working on LLVM benchmarking job
o Misc
* Various meetings and discussions.
Progress: (short week, 2 days)
* VIRT-65 [QEMU upstream maintainership]
+ email/code review/etc catchup following holiday
+ the usual run of admin work for the release process for rc2
+ investigated a problem where in 'icount' mode we weren't
firing timer interrupts in a timely manner; with assistance
from Paolo, tracked down the cause and sent a patch
(https://bugs.launchpad.net/qemu/+bug/1754038)
+ investigated a problem with v7M emulation reported by the LITE team;
this turned out to be a combination of a known limitation combined
with a badly worded warning message; sent QEMU patch which rewords
the message so it's clearer that it's telling you that you're running
into the limitation.
+ tracked down why aarch64 guest binaries run in icount mode on
a 32-bit host misbehave; I have a working but slightly ugly patch
which I'll send out next week unless somebody has a neater approach
thanks
-- PMM
Note1: working for Linaro every other week
Note2: had some important work to do on GCC this week so I'll do some LLVM
work next week as well to catch up
=== Work done during this LLVM+GCC week ===
* LLVM PR34170 (crashes with inline asm with double output operand in GPR):
upstream review
+ finish patch and submit for upstream review
=== Plan for next week (week 12) ===
* (maybe) follow-up patch for PR34170 to also support case with several
output operands
* investigate failure to build clang in shared lib mode with gcc
o 1 post-connect day off
== Progress ==
o GNU Release transition
* Supported Mark for 2018.04 RCs
o LLVM
* Catching-up on devpt (TCWG-1286, ...)
* Benchmarking job for LLVM
* Buildbots babysitting
o Misc
* Various meetings and discussions.
* HK18 debriefing
Progress:
[VIRT-198 # QEMU: SVE Emulation Support ]
Rebasing and addressing feedback from v2 posting.
- Finished first pass moving sve_access_check
after any checks for over decode.
- Still lots of cleanup to do across the 70 patches.
[Upstream]
Fixed a target/hppa bug affecting glibc 2.27.
Fixed a tcg optimization bug affecting high-part multiply.
r~
[LLVM]
- Submitted fix for PR36542, tracked down problem to LLVM not
considering the target triple of the MachineFunction when relaxing
branch instructions. [TCWG-1375].
- A lot of investigation of a difference in inline assembly between
GCC and LLVM, reviewed and approved upstream patch D44815.
- Review of upstream changes to support Short Thunks in LLD, managed
to find a problem in algorithm and provided a solution. Looks like
this could be approved soon.
- Review of BFD and Gold patches for my PR on missing support for
R_AARCH64_TLSLE_LDST family of relocations. I now need to implement
these in LLD.
[TCWG]
Some post connect note taking and writing up.
[Plans]
- Continue work on PR36542, address any review comments.
- Implement support for R_AARCH64_TLSLE_LDST family in lld.
- Get back to building Android with LLD.
Friday 30th and Monday the 1st are public holidays in UK.
The Linaro Binary Toolchain
============================
The Linaro GCC 6.4-2018.04-rc1 Release-Candidate is now available.
The GCC 6 Release series has significant changes from the GCC 5
release series. For an explanation of the changes please see the
following website:
https://gcc.gnu.org/gcc-6/changes.html
For help in porting to GCC 6 please see the following explanation:
https://gcc.gnu.org/gcc-6/porting_to.html
Download release-candidate packages from:
(sources) http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.04-rc1/
(binaries) http://snapshots.linaro.org/components/toolchain/binaries/6.4-2018.04-rc1/
Previous snapshots and release-candidates are at:
http://snapshots.linaro.org/components/toolchain/binaries/
Previous releases are at:
http://releases.linaro.org/components/toolchain/binaries/
A description of the arm and AArch64 target triples can be found at:
https://collaborate.linaro.org/display/TCWGPUB/ARM+and+AArch64+Target+Tripl…
Host Requirements
==================
Linaro officially supports the current and previous Ubuntu LTS
releases (as of the time of this release). This does not mean that
the toolchain will not work on other/older Linux distributions. See
the following for the life-time of Ubuntu LTS releases.
https://wiki.ubuntu.com/Releases
The host system upon which the cross-compiler will run requires a
minimum of glibc 2.14, because of API changes to glibc's memcpy API.
https://bugs.linaro.org/show_bug.cgi?id=1869
Package Versions
=================
Linaro GCC 6.4-2018.04-rc1
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.04-rc1/
Linaro glibc 2.23 (linaro/2.23/master)
https://lists.gnu.org/archive/html/info-gnu/2016-02/msg00009.html
Linaro newlib 2.4-2016.03 (linaro_2.4-branch)
https://sourceware.org/ml/newlib/2016/msg00370.html
Linaro binutils 2.27 (users/linaro/binutils-2_27-branch)
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=bin…
Linaro GDB 8.1 (gdb-8.1-branch)
https://lists.gnu.org/archive/html/info-gnu/2018-01/msg00016.html
Linaro toolchain package git branches are hosted at:
http://git.linaro.org/toolchain
NEWS for GCC 6 (as of Linaro GCC 6.4-2018.04-rc1)
==================================================
* Previous MinGW hosted version of Linaro GCC C preprocessor failed to
convert character set used for string, character constants, etc. This
is fixed in this release.
Linaro bugzilla #3040 : CC1 and cc1plus cannot convert UTF-8.
https://bugs.linaro.org/show_bug.cgi?id=3040
* The Linaro GCC 6.3-2017.05 snapshot added support for -mpure-code
option to ARMv7-M and ARMv8-M targets. This option ensures functions
are put into sections that contain only code and no data.
* The GDB version was upgraded from GDB 8.0.
* Previous versions of the Linaro GCC 6 toolchain, when -static
-E/—dynamic-list are passed to the linker, might create executables
with dynamic sections which aren’t supported by run-time. This was
exhibited in Perf Tools build system and has been fixed upstream and
backported into Linaro Binutils 2.27 branch.
Linaro bugzilla #2926 : Perf tools compiled statically for AArch64
with Linaro release 6.1 and later ones was not statically linked.
https://bugs.linaro.org/show_bug.cgi?id=2926
* The Linaro GCC 6.3-2017.03 snapshot fixed some ILP32 issues (TLS,
exception handling, …) and these have been incorporated into this
release.
* Previous versions of the Linaro GCC 6 toolchain were incorrectly
generating floating-point code for soft-float Linux targets
(arm-linux-gnueabi, and armeb-linux-gnueabi). This escaped detection
until recently because the soft-float targeted toolchains were
configured to use general-purpose registers for passing floating-point
values (which is what you would expect for soft-float toolchains) and
the intra-routine floating-code was not noticed.
The issue would only show up on targets that were run on hardware that
truly didn't have floating-point hardware where the kernel did not
trap and emulate floating-point routines. This has been solved in
Linaro GCC 6.3-2017.02-rc2 by configuring the toolchain (using
--with-float=soft) to generate code without any floating-point
instructions at all (-mfloat-abi=soft).
https://review.linaro.org/#/c/16968/2
This change should not break compatibility between existing binaries
compiled with these toolchains since the float-point parameter passing
ABI is still the same.
* A bug/regression in the compiler has been identified whereby the
target function that is invoked when calling a "weak" function
directly is the "strong" override, whereas when calling the function
via a pointer the "weak" implementation is used. This would be
noticed as inconsistent function invocation when invoking directly vs.
invoking via function pointer. This issue only affected 32-bit arm
targets. This regression has been fixed upstream and backported into
Linaro GCC 6.3-2017.02-rc2.
GCC PR target/78253: [5/6/7 Regression] [ARM] call weak function
instead of strong when called through pointer.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78253
Linaro bugzilla #2562: ARM GCC 5.2 call weak function instead of
strong when called through pointer
https://bugs.linaro.org/show_bug.cgi?id=2562
* MS Windows does not support symlinks and the MS Windows archive
extractor does not properly deep copy the symlink target
files/directories into the symlinked directory structure when
unpacking the toolchain archive. This causes problems with missing
dependencies when using the Linaro mingw toolchains, as identified in
the following bugs:
https://bugs.linaro.org/show_bug.cgi?id=2684https://bugs.linaro.org/show_bug.cgi?id=2192https://bugs.linaro.org/show_bug.cgi?id=2762
This has been solved by copying files rather than using symlinks when
the mingw targetted toolchain archives are created.
https://review.linaro.org/#/c/16415/
* Users of Linaro's toolchain have encountered problems when building
projects with Autotools (specifically libtool):
https://bugs.linaro.org/show_bug.cgi?id=2764
The Linaro binary toolchain release contained files with a .la suffix
as artifacts of the toolchain build process. These .la files are
helper files for libtool, but unlike a gcc install tree, they are not
position independent and contain full paths. Since these artifacts
contain absolute paths they can actually mislead user invocation of
libtool into not finding required libraries (because they reference
the build tree, not the install location) and hence breaking Autotools
builds. These *.la file artifacts have been removed from Linaro
toolchain binaries because they are unnecessary for users.
* The Linaro GCC 6.3-2017.01 snapshot added further enablement for
ARMv8-M and these have been incorporated into this release.
* Compiling and statically linking some SPEC2006int tests against
tcmalloc have been failing due to a problem with glibc's memory
allocator function overrides. This was fixed upstream:
https://sourceware.org/bugzilla/show_bug.cgi?id=20432
Backported into Linaro glibc 2.23:
commit 058b5a41d56b9a8860dede14d97dd443792d064b
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Aug 26 22:40:27 2016 +0200
malloc: Simplify static malloc interposition [BZ #20432]
* Host binaries for x86_64 linux hosts now have symbols and debug
information stripped in order to reduce the size of the toolchain
binary archives. This reduces the archive size from 1.5G to 600M for
aarch64-linux-gnu target with the gcc-6-branch.
* The GDB version was upgraded from GDB 7.11 in the Linaro GCC
6.1-2016.08 release to GDB 7.12 in the Linaro GCC 6.2-2016.11 release.
* The Linaro GCC 6.2-2016.10 snapshot added AArch32 support for ARMv8.2
and ARMv8m, as well as some AArch64 fixes for ARMv8.2, and bug fixes
merged from FSF GCC 6.2. This is available in the binary toolchain as
of Linaro GCC 6.2-2016.11.
* Basic tuning support for the Qualcomm qdf24xx was added to the Linaro
GCC 6.2-2016.10 snapshot and is available in the binary toolchain as
of Linaro GCC 6.2-2016.11.
* IFUNC was disabled for baremetal targets, as it was causing test-suite
failures, and is presently a Linux only feature.
* The gold linker was added to this binary release.
* Backported malloc_lock fix into Linaro newlib 2.4.
commit 2665915cfc46aa6403bb2efd473c523d3167e0cb
Author: Andre Vieira (lists) <Andre.SimoesDiasVieira(a)arm.com>
Date: Thu Jun 16 12:23:51 2016 +0100
Re-enable malloc_lock for newlib-nano
* Backported rawmemchr patch into Linaro newlib 2.4.
commit e7b1ee2ea6aa3ee1da41976407410e6202a098c5
Author: Wilco Dijkstra <Wilco.Dijkstra(a)arm.com>
Date: Thu May 12 16:16:58 2016 +0000
Add rawmemchr
* Backported strlen fix when using Thumb-2 and -Os -marm into Linaro
newlib 2.4.
commit 5c02bcc086a96b174e1b9e1445a4a1770070107a
Author: Thomas Preud'homme <thomas.preudhomme(a)arm.com>
Date: Wed May 11 17:18:48 2016 -0400
Fix strlen using Thumb-2 with -Os -marm
* Backported fix for semihosting ARM when heapinfo not provided by
debugger into Linaro newlib 2.4.
commit 5c9403eaf40951f8a4f55ed65f661b485ff44be7
Author: David Hoover <spm2(a)dangerous.li>
Date: Thu Apr 21 07:12:24 2016 +0200
Fixed semihosting for ARM when heapinfo not provided by debugger.
* Merged latest FSF glibc release/2.23/master into Linaro glibc 2.23.
* Backported __ASSUME_REQUEUE_PI check Linaro glibc 2.23 branch.
commit 2d20c3bf918cd94ebd4106693adb3a5c9272baba
Author: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
Date: Tue May 17 10:16:39 2016 -0300
Add runtime check for __ASSUME_REQUEUE_PI (BZ# 18463)
* Backported removal of __ASSUME_SET_ROBUST_LIST from Linaro glibc 2.23
branch.
commit bb8f09d72756186a3d82a1f7b2adcf8bc1fbaed1
Author: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
Date: Mon May 16 19:01:10 2016 -0300
Remove __ASSUME_SET_ROBUST_LIST
* Backported removal of __ASSUME_FUTEX_LOCK_PI from Linaro glibc 2.23
branch.
commit e48b4e7fed0de06dd7832ead48bea8ebc813a204
Author: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
Date: Mon May 16 10:35:25 2016 -0300
Remove __ASSUME_FUTEX_LOCK_PI
* Merged latest FSF binutils-2_27-branch into
linaro_binutils-2_27-branch.
* The libwinpthread DLL is now copied into the host bin directory to
satisfy mingw package dependencies.
* Backported GNU Linker fix.
commit fbc6c6763e70cb2376e2de990c7fc54c0ee44a59
Author: Nick Clifton <nickc(a)redhat.com>
Date: Tue Aug 23 09:45:11 2016 +0100
Fix seg-fault in ARM linker when trying to parse a binary file.
* Backported GNU Assembler fix for PR 20364
commit 5fe7ebe5ab43750abf8f490b785d99a1e598e7fd
Author: Nick Clifton <nickc(a)redhat.com>
Date: Fri Aug 5 10:37:57 2016 +0100
Fix the generation of alignment frags in code sections for AArch64.
https://sourceware.org/bugzilla/show_bug.cgi?id=20364
* Performance related backports from the following snapshots have been
included: Linaro GCC 6.1-2016.06, Linaro GCC 6.1-2016.07, Linaro GCC
6.1-2016.08, Linaro GCC 6.2-2016.09, Linaro GCC 6.2-2016.10, Linaro
GCC 6.2-2016.11, Linaro GCC 6.2-2016.12, Linaro GCC 6.3-2017.01,
Linaro GCC 6.3-2017.02, Linaro GCC 6.3-2017.03, Linaro GCC
6.3-2017.04, Linaro GCC 6.3-2017.05, Linaro GCC 6.3-2017.06, Linaro
GCC 6.4-2017.07, Linaro GCC 6.4-2017.08, Linaro GCC 6.4-2017.09,
Linaro GCC 6.4-2017.10, Linaro GCC 6.4-2018.01 and Linaro GCC
6.4-2018.03 .
See the following Linaro GCC snapshots:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.06/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.07/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.08/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.09/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.10/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.11/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.12/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.01/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.02/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.03/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.04/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.05/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.06/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.07/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.08/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.09/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.10/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.01/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.03/
Contact Linaro
===============
File bugs at http://bugs.linaro.org
For Linaro member support see http://support.linaro.org
For Linaro community support email linaro-toolchain(a)lists.linaro.org
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.
Progress:
* VIRT-65 [QEMU upstream maintainership]
+ raspi3: came up with plausible fix for sd controller model that makes
Linux driver work. Unfortunately it's pure guesswork since there's
no public documentation for the hardware :-(
+ drafted a blog post describing booting Linux on the raspi3 model
(for publication once we've got the sdcard fix in master)
+ tagged 2.12.0 rc0 (first release candidate), various other release work
* VIRT-164 [improve Cortex-M emulation]
+ a little more progress with the stack-limit checking feature
thanks
-- PMM
Hello
Can you recommend Cross GCC for Windows for
armv7a-vfp-neon-oe-linux-gnueabi
-march=armv7-a, -mfloat-abi=softfp, -mfpu=neon
Qualcomm ARM Cortex A7 MDM9x07&MDM9628
The device is Quectel EC20 GSM Module
Best regards
Georgi Angelov
Progress:
* VIRT-65 [QEMU upstream maintainership]
+ raspi3 board: tested with a Debian kernel, and fixed and sent
patches for various issues that were causing it to panic.
Unfortunately there's a more tricky issue with the sd controller
still that means it doesn't boot yet...
+ bug investigation week:
- LP:1748434: wrong logic for ICC_PMR and ICC_RPR accesses by NS code
when the GICv3 emulation has security extensions enabled. Sent patch.
- LP:1751674: segfault doing a VM memory dump on vexpress-a9. This is
a combination of user error and a longstanding bug where the GICv2
crashes if you try to read its banked-per-CPU registers from a context
that isn't a guest CPU (like the monitor or the gdbstub)
- LP:1755479: confirmed that crash when using -icount is one that has
been fixed by a patch from Pavel that was lurking in a record/replay series
+ handling all the merge requests for softfreeze
* VIRT-164 [improve Cortex-M emulation]
+ started to look at implementing the stack-limit checking feature
thanks
-- PMM
Note: working for Linaro every other week
=== Work done during this LLVM week ===
* finish slides for bswap/store merging passes presentation in hacker room
at Connect HK2018
* Continue working on fix for PR34170 / TCWG1137 (cannot select truncate in
ARMv7 backend):
-> better understanding of generation of ISD node for inline asm, finally
seeing a way forward
=== Plan for next Linaro week (week 12) ===
* Linaro connect
If time permits:
* finish fix for PR34170 / TCWG1137 (cannot select truncate in ARMv7
backend)
* investigate failure to build clang in shared lib mode with gcc
Hi.
gdb doesn't run due to there is no libpython2.7.so on the system.
$ ./gdb/gdb --version
./gdb/gdb: error while loading shared libraries: libpython2.7.so: cannot open shared object file: No such file or directory
There is only static python library available. Is there a way to build gdb with static python library?
Regards,
Martins
== Progress ==
* GCC
- FDPIC
- reworking/cleaning binutils patches
* GCC upstream validation:
* Infrastructure:
- TCWG-1335: updated builder dockerfiles with postfix config. ABE
patch under review to send test results. Sent a patch for
contrib/test_summary script.
- Enabling use of Linaro binary release on old distro: unsuccessful
experiment with LD_PRELOAD so far.
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
* Off on Friday afternoon.
# Progress #
* Fix non-gdbserver issue and GDB buildbot issue.
Intel people committed a patch breaks every non-x86 gdbserver. Test
with GDBserver is slowed down from 20~40 minutes to 6~12 hours.
The fix is pushed in,
requested upstream GDB buildbot maintainer to get rid of pending
builds until the fix.
# Plan #
* Review Alan H.'s patches.
--
Yao Qi
== This Week ==
* Coremark regression (TCWG-1234) (6/10)
- Working on defining a cost model for hoisting.
* Public Holiday (2/10)
* Misc (2/10)
- Meetings
- Slides
== Next Week ==
- Continue ongoing tasks.
Note: working for Linaro every other week
* start looking at fix for PR34170 / TCWG1137 (cannot select truncate in
ARMv7 backend):
+ inline asm with >=64bit floating-point output is not handled
+ wrote a tentative patch which crashes later in the code, need to
investigate
* Start slides for technical talk in TCWG room @ Linaro connect:
+ bswap done, started to refamiliarize myself with store merging pass and
its latest improvement
* Merge the two patches for TCWG-1308 (missing pseudo expansion + crash in
instruction selection of vector load/store with register writeback)
=== Plan for next Linaro week (week 10) ===
* finish fix for PR34170 / TCWG1137 (cannot select truncate in ARMv7
backend)
* finish slides for bswap/store merging passes presentation in hacker room
at Connect HK2018
* Off on Monday [1/5]
# Progress #
* GDB is confused by the line table generated by GCC with -gcolumn-info
PR 22531. [2/5]
Preparatory patches v2 are posted.
* Merge my patches on removing MAX_REGISTER_SIZE. Done. [2/5]
# Plan #
* PR 22531,
* Upstream patches review.
--
Yao Qi
== Progress ==
* GCC
- FDPIC
- reworking/cleaning binutils patches
* GCC upstream validation:
- no regression to report this week :-)
* Infrastructure:
- tcwg-buildapp + lava now triggered daily, to check lava/lab reliability.
- updated builder dockerfiles with postfix config. Patch under review
- some progress on enabling use of Linaro binary release on old
distro. My proposal was rejected, but the discussion moved forward.
- fixed toolchain build not to ship 'runtest' anymore, and moved
gdbserver from bin/ to sysroot dir
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
# Progress #
* GDB is confused by the line table generated by GCC with -gcolumn-info
PR 22531. [2/5]
Tested one patch again, committed. Keep going on the rest
of them.
* Fix one GDB issue with OpenOCD, which is a long standing issue. [2/5]
Commit patch to both GDB master and 8.1 branch. Done.
* Misc, patches review, meeting. [1/5]
# Plan #
* One day off on Monday,
* PR 22531,
* Resume my pending patches on removing MAX_REGISTER_SIZE.
--
Yao Qi
== Progress ==
* GCC
- FDPIC
- rebased GCC and GDB patches on top of recent master branches.
- adjusted some of the GDB (gdbserver) patches to cope with gcc-8
complaints.
- adjusted CI testsuite to cope with gcc-8
* GCC upstream validation:
- no regression to report this week :-)
- still checking go/libgo random results on some tests
* Infrastructure:
- improved tcwg-buildapp (Using Lava, thanks to Remi). Now retries
lava job several times if needed.
- managed to configure postfix to send emails from our build
containers (thanks Ben). Once this is properly configured/deployed,
we'll finally be able to send GCC validation results to the
appropriate list
- resurrected my old work to force use of the old memcpy version
such that our binary toolchains work on older distros (such as
RHEL6...)
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
== This Week ==
* Code hoisting (TCWG-1234) (6/10)
- Working on approach to add basic block info to ANTIC sets
* GCC bugs (3/10)
- Extend sincos to handle sin 2x (PR83661): Patch completed.
* Misc (1/10)
- Meetings
# Progress #
* GDB is confused by the line table generated by GCC with -gcolumn-info
PR 22531. [2/5]
Override operator new/delete, patch is OK'ed but Tom still believes
classes must be is_trivially_destructible.
* Resume my pending patches on removing MAX_REGISTER_SIZE.
[2/5]
Patches v2 are updated and posted.
* Fix one GDB issue with OpenOCD, which is a long standing issue. [1/5]
Patch is tested, but not committed yet.
# Plan #
* PR 22531,
* Resume my pending patches on removing MAX_REGISTER_SIZE.
* More patches review,
--
Yao Qi
== Progress ==
* GCC
- FDPIC
- updated binutils ref results in CI. There are a couple of new
failures to investigate
- started GCC upgrade: rebased the FDPIC GCC pile of patches on top of
trunk.
- debugging ICE while building libgcc
* GCC upstream validation:
- helped reproduce a bugzilla on armeb
- reported random go/libgo test failures. Intel confirmed they also see
similar random results.
* Infrastructure:
- improved tcwg-buildapp script/job to actually boot arm/arm64 boards
after building a kernel with a given toolchain. (Using Lava, thanks to Remi)
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
== Progress ==
o LLVM
* "unpredictable" handling:
- Bugzilla 33011: Fix committed
- Working on unpredictable cases when using PC as operand.
* Buildbots failures:
- Analyzed regressions, due to D42574
- Tested and reviewed proposed tix
* 6.0.0 release test failure:
- Investigate Bug 35996 (asan_rt_conflict_test segfaults)
- Issue due to hardcoded filename;s lenght is too short
- Validating a fix
* Got commit after approval access granted
o Misc
* Various meetings and discussions.
# Progress #
* gfortran 7.2 vs 8.0 debug information difference. [2/5]
Open GCC bug to get more attention, PR debug/84131. It is a GCC 8
regression. Jakub fixed it two hours after I opened the bug. Now,
there is no gdb.fortran test fails with truk gcc.
* GDB is confused by the line table generated by GCC with -gcolumn-info
PR 22531. [2/5]
Patches are done, to be posted for review. Investigate how to
override new/delete operator in C++.
* Resume my pending patches on removing MAX_REGISTER_SIZE.
[1/5]
Update patch series v2 per reviewers' comments.
# Plan #
* GDB 8.1 is released! Bump up GDB version in Linaro toolchain.
* PR 22531,
* Resume my pending patches on removing MAX_REGISTER_SIZE.
--
Yao Qi
== This Week ==
* GCC bugs (5/10)
a) Extend malloc_candidate_p to handle multiple phi's (TCWG-1331):
Fixed testsuite regressions
b) Extend sincos to handle sin 2x (PR83661): Started working on patch.
* TCWG-1234 (2/10)
- A one liner patch that pessimizes hoisting by requiring an
expression to be in AVAIL blocks of all immediate successors works for
improving the regression.
- Working to make the patch more general to avoid pessimizing hoisting.
* Public holiday (2/10)
* Misc (1/10)
- Meetings
== Progress ==
o Linaro GCC/Validation
* 2018.01 snapshots deployed
* 2018.02 release candidates will be done when CVE mitigation will
be contributed upstream.
o LLVM
* "unpredictable" handling (Bugzilla 33011, ...): on-going
* Investigated OOM issue further... without much success.
* Python scripts reviews
o Misc
* Various meetings and discussions.
* Preparing Connect presentations
Note: working for Linaro every other week
== Progress ==
* PR35157 / TCWG-1308 (crash in ARM backend for VST1d64TPseudoWB_fixed
instruction):
+ after 2 attempts got now a clean patch with no testsuite regression
+ need to add testcase and it will be good to go upstream
* Track down why xdg-open launches libreoffice for .dot files and opened
Launchpad LP#1744953.
* Misc meetings
== Plan ==
* submit fix for PR35157 (crash in ARM backend for VST1d64TPseudoWB_fixed
instruction)
* fix for PR34170 / TCWG1137 (cannot select truncate in ARMv7 backend)
* start preparing slide for bswap/store merging passes presentation in
hacker room at Connect HK2018
# Progress #
* GDB is confused by the line table generated by GCC with -gcolumn-info
PR 22531. [2/5]
My preparatory patches are reviewed, mostly on C++, get encouraged to
use more fancy C++ features.
* gfortran 7.2 vs 8.0 debug information difference. [2/5]
Many gdb.fortran test fails with gfortran 8 but gfotran 7.2 is OK. I
'git bisect' gcc and find the commit causing the debug info change,
it is like a bug to me, but my compiler/fortran knowledge is too few
to claim it is a 7.2 -> 8.0 regression.
Posted my analysis to gcc@ and fortran@ mail list.
* TCWG-1040, SVE patches review. [1/5]
Review Alan's patches.
# Plan #
* PR 22531, upstream preparatory patches,
* Write patch series v2 for TCWG-1292.
--
Yao Qi
== Progress ==
* GCC
- FDPIC
- debugging CI loop
* GCC upstream validation:
- reported a few regressions
- contributed to jenkins jobs
* Infrastructure:
- looking at how to use lava to boot boards in gcc validation (with Remi)
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
Hi,
given the following code:
-- isystem_test.cpp -------------
#include < isystem_test.h>
bool dummy_function( void )
{
return false;
}
-----------------------------------------
-- isystem_test.h ------------------
template <class _CS_cT>
class allocator
{
};
-----------------------------------------
and g++ version: arm-eabi-g++.exe (Linaro GCC 7.2-2017.11)
1. compiling with "arm-eabi-g++ -I . -g -c isystem_test.cpp"
--> OK
2. compiling with " arm-eabi-g++ -isystem . -g -c isystem_test.cpp "
--> output error:
In file included from isystem_test.cpp:3:0:
./isystem_test.h:3:1: error: template with C linkage
template <class _CS_cT>
^~~~~~~~
It seams that the option -isystem changes the include of isystems_test.h into a C include, i.e. the header content seems to be handled as C-Code
Same error behavior with arm-eabi Linaro GCC 6.4-2017.11, Linaro GCC 6.3-2017.05
-----------------
Testing the same with the mingw msys g++ compiler outputs no error:
g++.exe (Rev2, Built by MSYS2 project) 7.2.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
---------------
Also no errors for:
arm-linux-gnueabihf-g++.exe (Linaro GCC 6.3-2017.05)
---------------
Is there a special behavior for arm-eabi g++ compiler?
Best regards
Martin Kaul
The Linaro Toolchain Working Group (TCWG) is pleased to announce the 2018.01
snapshot of Linaro GCC 6 and 7 source packages.
o The GCC 7 series introduced an ABI change for ARM targets by fixing a bug
(present since GCC 5, see link below) that affects conformance to the procedure
call standard (AAPCS). The bug affects some C++ code where class objects are
passed by value to functions and could result in incorrect or inconsistent code
being generated. If the option -Wpsabi is enabled (on by default) the compiler
will emit a diagnostic note for code that might be affected by this ABI change.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
For an explanation of the changes please see the following website:
https://gcc.gnu.org/gcc-7/changes.html
o Linaro GCC 7 monthly snapshot[1] is based on FSF GCC 7.2+svn254792 and
includes performance improvements and bug fixes backported from mainline GCC.
The contents of this snapshot will be part of the 2018.02 stable[2] quarterly
release.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.2-2018.01/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 7.2+svn256695
o Linaro GCC 6 monthly snapshot[1] is based on FSF GCC 6.4+svn254791 and
includes performance improvements and bug fixes backported from mainline GCC.
This snapshot contents will be part of the next maintenance release.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.01/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 6.4+svn256699
o 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@
* Bug reports should be filed in Bugzilla against GCC product:
http://bugs.linaro.org/enter_bug.cgi?product=GCC
* Interested in commercial support? inquire at "Linaro support":
mailto:support@linaro.org
[1]. Source package snapshots are defined when the compiler is only
put through unit-testing and full validation is not performed.
[2]. Stable source package releases are defined as releases where the
full Linaro Toolchain validation plan is executed.
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.
== Progress ==
o LLVM
* Bugzilla 33011 (MVN instruction "Upredictable" bit patterns incorrect):
- Working on upstream comments
* Working on more unpredictable handling in Tablegen
* Fixing an issue with registers class in peephole optimization
(exhibited by unpredictable patches).
* Buildbots babysitting: investigated OOM issue, offending patch reverted.
o Misc
* Various meetings and discussions.
# Progress #
* GDB is confused by the line table generated by GCC with -gcolumn-info
PR 22531. [2/5]
Chat with other two people who are changing the same file, and they
are OK to get my changes first. Commit one obvious patch, and testing
one patch series for refactor.
* TCWG-181, GDB compile feature. [2/5]
Many new test failures in gdb.compile, because it is not supported on
arm and aarch64, but we have no way to disable them. Commit two fixes
to get test better, but still many fails on arm-linux. I think I
still need a patch to disable the test form arm-linux.
* TCWG-1040, SVE patches review. [1/5]
Review Alan's patches.
# Plan #
* PR 22531, upstream preparatory patches,
* Answer questions to my pending patch series, TCWG-1292.
--
Yao Qi
== Progress ==
* GCC
- FDPIC
- fixed crash during program startup (self-relocation)
- CI loop now almost green
* GCC upstream validation:
- reported a few of regressions
- committed a few minor testsuite fixes
* Infrastructure:
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
Hi, all
I have updated my test case:
Compile passed but failed while linking.
wentao@ubuntu:~/test/lamda$ cat a.cc
#include <iostream>
using namespace std;
int main()
{
auto f = [=]() {
cout <<"Hello world"<<endl;
};
f();
return 0;
}
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ --std=gnu++11 a.cc -o arm32
/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.3.1/../../../../arm-eabi/lib/libstdc++.a(locale.o): In function `get_locale_cache_mutex':
/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/libstdc++-v3/src/c++98/locale.cc:36: undefined reference to `__sync_synchronize'
/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.3.1/../../../../arm-eabi/lib/libstdc++.a(future.o): In function `__future_category_instance':
/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/libstdc++-v3/src/c++11/future.cc:64: undefined reference to `__sync_synchronize'
/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.3.1/../../../../arm-eabi/lib/libstdc++.a(locale_init.o): In function `(anonymous namespace)::get_locale_mutex()':
/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/libstdc++-v3/src/c++98/locale_init.cc:66: undefined reference to `__sync_synchronize'
collect2: error: ld returned 1 exit status
wentao@ubuntu:~/test/lamda$
������: zhangwentao (M)
����ʱ��: 2018��1��10�� 10:22
�ռ���: 'linaro-toolchain(a)lists.linaro.org'
����: Huangqiang (H); Lizefan; leijitang
����: Does linaro toolchain support c++11 ??
Hi all,
I wonder if my compiler supports C++11? If not, where could I found the compiler supports c++11 (both 32bit and 64bit arm).
THANKS a lot~~~
My compiler information is as below:
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ -v
Using built-in specs.
COLLECT_GCC=arm-eabi-g++
COLLECT_LTO_WRAPPER=/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../libexec/gcc/arm-eabi/6.3.1/lto-wrapper
Target: arm-eabi
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --enable-multilib --with-multilib-list=aprofile --enable-threads=no --disable-multiarch --with-newlib --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/sysroots/arm-eabi --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-eabi/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-eabi --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: single
gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
wentao@ubuntu:~/test/lamda$
===>
And more, I wrote a ��hello-world�� program using c++11, it could work with host g++, but when I change to ��arm-eabi-g++��, it does not work.
Information as below:
wentao@ubuntu:~/test/lamda$ cat a.cc
#include <iostream>
using namespace std;
typedef void(*Func)();
int main()
{
Func f = [=]() {
cout <<"Hello world"<<endl;
};
f();
return 0;
}
wentao@ubuntu:~/test/lamda$ g++ a.cc -o host
a.cc: In function ��int main()��:
a.cc:10:2: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
};
^
wentao@ubuntu:~/test/lamda$ ./host
Hello world
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ a.cc -o arm32
a.cc: In function ��int main()��:
a.cc:10:2: error: cannot convert ��main()::<lambda()>�� to ��Func {aka void (*)()}�� in initialization
};
^
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ --std=gnu++11 a.cc -o arm32 # if gives �Cstd=c++11 , the error is the same.
a.cc: In function ��int main()��:
a.cc:10:2: error: cannot convert ��main()::<lambda()>�� to ��Func {aka void (*)()}�� in initialization
};
^
wentao@ubuntu:~/test/lamda$
Hi everyone,
Note 1: Working on Linaro 50% time.
Note 2: had afternoons off for the first 2 weeks of January
== Progress ==
* Week 1 (2/1 -> 5/1) working for Arm
* Fix poor screen resolution issue
* Onboarding process:
+ read all docs, setup accounts (gmail, octopus, ...)
* PR35157 / TCWG-1308 (Crash in ARM backend for VST1d64TPseudoWB_fixed
instruction):
+ reproduce in llc under gdb, start investigating
== Plan ==
* PR35157 / TCWG-1308 (Crash in ARM backend for VST1d64TPseudoWB_fixed
instruction)
# Progress #
* GDB 8.1 release.
8.1 RC was created. 8.1 will be released soon, I think.
* GDB is confused by the line table generated by GCC with -gcolumn-info
PR 22531. [3/5]
Get a working patch, but need to upstream my refactoring first. Other
two people from upstream are also changing the same file, need to
cooperate.
* Upstream patches review, [2/5]
** Review changes to dwarf2read.c,
** Review one ARMv8 OpenOCD patch,
# Plan #
* PR 22531,
* Resume my pending patches on removing MAX_REGISTER_SIZE.
--
Yao Qi
== Progress ==
o LLVM
* TCWG-1324 (failures of Clang::atomic_ops.c and frem.ll on armv8l host):
- Fix committed in mainline as r322098
* Bugzilla 33011 (MVN instruction "Upredictable" bit patterns incorrect):
- Fix submitted upstream
* Buildbots babysitting.
* LLVM scripts reviews
o Misc
* Various meetings and discussions.
== This Week ==
* GCC bugs (8/10)
- PR81703: Committed to trunk, restricted test-case to x86_64 for now.
- PR83514: Committed to trunk.
- PR82665: Upstream iteration and approved for next stage-1.
- PR83648: Upstream iteration and approved for next stage-1.
- TCWG-1329: Created patch.
- PR83570: Work in progress patch.
* libgo regression (1/10)
- Individual tests failing with makechan size out of range
- Sent patch to add failing tests to unstable-tests.txt
* Misc (1/10)
- libgo regressions
- Meetings
== Next Week ==
- TCWG-1234
- GCC bugs
== Progress ==
* GCC
- FDPIC
- understood crash during program startup (self-relocation):
self-relocated data is set read-only by the dynamic linker.
* GCC upstream validation:
- reported a couple of regressions
- helped validating a couple of patches before they are committed
* Infrastructure:
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
Hi all,
I wonder if my compiler supports C++11? If not, where could I found the compiler supports c++11 (both 32bit and 64bit arm).
THANKS a lot~~~
My compiler information is as below:
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ -v
Using built-in specs.
COLLECT_GCC=arm-eabi-g++
COLLECT_LTO_WRAPPER=/home/wentao/TeeOS/tools/gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi/bin/../libexec/gcc/arm-eabi/6.3.1/lto-wrapper
Target: arm-eabi
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/snapshots/gcc.git~linaro-6.3-2017.05/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --enable-multilib --with-multilib-list=aprofile --enable-threads=no --disable-multiarch --with-newlib --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/sysroots/arm-eabi --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-eabi/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-eabi --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-eabi/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: single
gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
wentao@ubuntu:~/test/lamda$
===>
And more, I wrote a "hello-world" program using c++11, it could work with host g++, but when I change to "arm-eabi-g++", it does not work.
Information as below:
wentao@ubuntu:~/test/lamda$ cat a.cc
#include <iostream>
using namespace std;
typedef void(*Func)();
int main()
{
Func f = [=]() {
cout <<"Hello world"<<endl;
};
f();
return 0;
}
wentao@ubuntu:~/test/lamda$ g++ a.cc -o host
a.cc: In function 'int main()':
a.cc:10:2: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
};
^
wentao@ubuntu:~/test/lamda$ ./host
Hello world
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ a.cc -o arm32
a.cc: In function 'int main()':
a.cc:10:2: error: cannot convert 'main()::<lambda()>' to 'Func {aka void (*)()}' in initialization
};
^
wentao@ubuntu:~/test/lamda$ arm-eabi-g++ --std=gnu++11 a.cc -o arm32 # if gives -std=c++11 , the error is the same.
a.cc: In function 'int main()':
a.cc:10:2: error: cannot convert 'main()::<lambda()>' to 'Func {aka void (*)()}' in initialization
};
^
wentao@ubuntu:~/test/lamda$
o 3 days off
== Progress ==
o LLVM
* TCWG-1317 (lencod miscompilation on clang-native-arm-lnt-perf bot):
- Can't reproduce the miscompilation on the builder at
a revision where it should
- Issue fixed on the bot
* TCWG-1324 (failures of Clang::atomic_ops.c and frem.ll on armv8l host):
- Built the toolchains and start to investigate
* Buildbots babysitting:
- Investigate and reported upstream regressions
o Misc
* Catch-up after vacations
== This Week ==
* GCC bugs (8/10)
a) PR83501 - Committed to trunk.
b) PR82665 - Upstream iteration, waiting for final approval.
c) PR83648 - Upstream iteration.
d) PR81703 - Created a fix.
e) PR83661 - Work in progress patch.
* Public Holiday (2/10)
== Next Week ==
- Continue ongoing tasks
* 1 day off (Monday)
== Progress ==
* GCC
- FDPIC
- debugging crash during program startup (self-relocation)
- fixed linker assert when using -static
* GCC upstream validation:
- reported a couple of regressions
- incremental improvements for more robustness, and easier
configuration of validations
* Infrastructure:
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
* New year holiday
# Progress #
* GDB 8.1 release.
8.1 branch is created. Fix GDB and GDBserver build failure in
release mode. Patches are posted.
Looking at several test fails caused by new GCC emitting multiple
line entries for the same line but with different columns, like,
i = 1; j = 2;
GDB can't step over the whole source line, and program stops at the
middle of the source line.
# Plan #
* GDB 8.1 release.
* Resume my pending patches on removing MAX_REGISTER_SIZE.
--
Yao Qi
Hi,
I am using the following linaro toolchain and need to create a license
manifest in terms what are the packages are there, what license they use.
https://releases.linaro.org/components/toolchain/binaries/
5.2-2015.11-2/aarch64-linux-gnu/
I don't see any such manifest in the release archive nor in the toolchain
archive. If such manifest is available then would you please point me to it.
--
*Ronak A Desai*
1 day off (Friday)
== Progress ==
* GCC
- FDPIC
- debugging crash during program startup (self-relocation), and
linker assert when using -static
* GCC upstream validation:
- reported a couple of regressions, tested a couple of patches for upstream
- incremental improvements for more robustness, and easier
configuration of validations
* Infrastructure:
* misc (conf-calls, meetings, emails, ....)
== Next ==
Holidays until Jan 2nd, 2018
Merry Christmas and happy new year!
# Progress #
* GDB 8.1 release. [2/10]
Triage regressions on aarch64 and arm.
* PR 21698. [3/10]
During the patch review, I doubt the patch fixes an invalid
python use in gdb. The GDB doc is quite unclear on how
that python api should be used. Ask the python api owner to
clarify.
* Misc, [5/10]
Two days travel to Manchester.
# Plan #
* GDB 8.1 release. Fix regressions.
--
Yao Qi
# Progress #
* TCWG-1125, ARMv8 tagged address support in GDB.
Finish v3, and committed. Done. [5/10]
* TCWG-1040,
Update my patches to remove the last use of MAX_REGISTER_SIZE.
No response, people are busy on release.
* GDB 8.1 release. [2/10]
PR gdb/21698. It is a regression. Fixed.
* Misc, [3/10]
# Plan #
* GDB 8.1 release, testing for ARM and AArch64.
--
Yao Qi
== Progress ==
o Linaro GCC/Validation
* 6.4 an 7.2 2017.11 snapshots deployed.
o LLVM ramp-up
* Buildbots babysitting:
- Investigate and reported upstream regressions
* Patch benchmarking job (TCWG-1306):
- Start to look at it
* Upstream BZ 32999:
- Still on-going
o Misc
* Various meetings and discussions.
== Progress ==
* GCC
- FDPIC
- debugged linker assert while building gcc target libs
- now debugging crash during program startup (self-relocation)
* GCC upstream validation:
- reported a couple of regressions
- a few more improvements to handle random infrastructure problems
- experimenting with new builders
* Infrastructure:
- updated Jenkins job for GCC upstream monitoring
* misc (conf-calls, meetings, emails, ....)
== Next ==
* GCC/FDPIC
* GCC upstream validation
The Linaro Toolchain Working Group (TCWG) is pleased to announce the 2017.11
snapshot of Linaro GCC 6 and 7 source packages.
o The GCC 7 series introduced an ABI change for ARM targets by fixing a bug
(present since GCC 5, see link below) that affects conformance to the procedure
call standard (AAPCS). The bug affects some C++ code where class objects are
passed by value to functions and could result in incorrect or inconsistent code
being generated. If the option -Wpsabi is enabled (on by default) the compiler
will emit a diagnostic note for code that might be affected by this ABI change.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
For an explanation of the changes please see the following website:
https://gcc.gnu.org/gcc-7/changes.html
o Linaro GCC 7 monthly snapshot[1] is based on FSF GCC 7.2+svn254792 and
includes performance improvements and bug fixes backported from mainline GCC.
The contents of this snapshot will be part of the 2018.02 stable[2] quarterly
release.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.2-2017.11/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 7.2+svn254792
o Linaro GCC 6 monthly snapshot[1] is based on FSF GCC 6.4+svn254791 and
includes performance improvements and bug fixes backported from mainline GCC.
This snapshot contents will be part of the next maintenance release.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.11/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 6.4+svn254791
o 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@
* Bug reports should be filed in bugzilla against GCC product:
http://bugs.linaro.org/enter_bug.cgi?product=GCC
* Interested in commercial support? inquire at "Linaro support":
mailto:support@linaro.org
[1]. Source package snapshots are defined when the compiler is only
put through unit-testing and full validation is not performed.
[2]. Stable source package releases are defined as releases where the
full Linaro Toolchain validation plan is executed.
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.
* One day off
* One day sick and half one in the snow
== Progress ==
o Linaro GCC/Validation
* GCC 6.4 and 7.2 binary releases deployed
* 2017.11 snapshots:
- 6.4 and 7.2 ready to be deployed
o LLVM ramp-up
* Upstream BZ 32999:
- Struggled to construct the testcases which
produce the DAGs needed for a good coverage
- Re-working sub-vectors indexes logic to handle
these testcases.
o Misc
* Various meetings and discussions.
# Progress #
* TCWG-1040, [6/10]
Update my patches to remove the last use of MAX_REGISTER_SIZE.
Post the whole patch series as an RFC. There are 15 patches, but I
rewrote them in seven times. This version is quite satisfying.
Targeting to GDB 8.2. One patch can't be merged until 8.1 is
branched.
* TCWG-1125, ARMv8 tagged address support in GDB.
Writing v3. [2/10]
* Misc, [2/10]
# Plan #
* TCWG-1125,
* GDB 8.1 release. Testing for ARM and AArch64.
--
Yao Qi
== This Week ==
* TCWG-1234 (6/10)
- Using dfs to compute bb dist
- Reading through rest of PRE/SCCVN to better understand the infrastructure
* PR82808 (2/10)
- Trying to find an approach to pass parm_type from all callers.
- Martin posted a patch to address the parm_type issue.
* Misc (2/10)
- Meetings
- Filed PR83194, browsing through other PR's.
== Next Week ==
- Continue ongoing tasks
The Linaro Binary Toolchain
============================
The Linaro GCC 6.4-2017.11 Release is now available.
The GCC 6 Release series has significant changes from the GCC 5
release series. For an explanation of the changes please see the
following website:
https://gcc.gnu.org/gcc-6/changes.html
For help in porting to GCC 6 please see the following explanation:
https://gcc.gnu.org/gcc-6/porting_to.html
Download release packages from:
(sources) http://releases.linaro.org/components/toolchain/gcc-linaro/6.4-2017.11/
(binaries) http://releases.linaro.org/components/toolchain/binaries/6.4-2017.11/
Previous snapshots and release-candidates are at:
http://snapshots.linaro.org/components/toolchain/binaries/
Previous releases are at:
http://releases.linaro.org/components/toolchain/binaries/
A description of the arm and AArch64 target triples can be found at:
https://collaborate.linaro.org/display/TCWGPUB/ARM+and+AArch64+Target+Tripl…
Host Requirements
==================
Linaro officially supports the current and previous Ubuntu LTS
releases (as of the time of this release). This does not mean that
the toolchain will not work on other/older Linux distributions. See
the following for the life-time of Ubuntu LTS releases.
https://wiki.ubuntu.com/Releases
The host system upon which the cross-compiler will run requires a
minimum of glibc 2.14, because of API changes to glibc's memcpy API.
https://bugs.linaro.org/show_bug.cgi?id=1869
Package Versions
=================
Linaro GCC 6.4-2017.11
http://releases.linaro.org/components/toolchain/gcc-linaro/6.4-2017.11/
Linaro glibc 2.23 (linaro/2.23/master)
https://lists.gnu.org/archive/html/info-gnu/2016-02/msg00009.html
Linaro newlib 2.4-2016.03 (linaro_2.4-branch)
https://sourceware.org/ml/newlib/2016/msg00370.html
Linaro binutils 2.27 (users/linaro/binutils-2_27-branch)
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=bin…
Linaro GDB 8.0 (gdb-8.0-branch)
https://lists.gnu.org/archive/html/info-gnu/2016-10/msg00007.html
Linaro toolchain package git branches are hosted at:
http://git.linaro.org/toolchain
NEWS for GCC 6 (as of Linaro GCC 6.4-2017.11)
==============================================
* Previous MinGW hosted version of Linaro GCC C preprocessor failed to
convert character set used for string, character constants, etc. This
is fixed in this release.
Linaro bugzilla #3040 : CC1 and cc1plus cannot convert UTF-8.
https://bugs.linaro.org/show_bug.cgi?id=3040
* The Linaro GCC 6.3-2017.05 snapshot added support for -mpure-code
option to ARMv7-M and ARMv8-M targets. This option ensures functions
are put into sections that contain only code and no data.
* The GDB version was upgraded from GDB 8.0.
* Previous versions of the Linaro GCC 6 toolchain, when -static
-E/—dynamic-list are passed to the linker, might create executables
with dynamic sections which aren’t supported by run-time. This was
exhibited in Perf Tools build system and has been fixed upstream and
backported into Linaro Binutils 2.27 branch.
Linaro bugzilla #2926 : Perf tools compiled statically for AArch64
with Linaro release 6.1 and later ones was not statically linked.
https://bugs.linaro.org/show_bug.cgi?id=2926
* The Linaro GCC 6.3-2017.03 snapshot fixed some ILP32 issues (TLS,
exception handling, …) and these have been incorporated into this
release.
* Previous versions of the Linaro GCC 6 toolchain were incorrectly
generating floating-point code for soft-float Linux targets
(arm-linux-gnueabi, and armeb-linux-gnueabi). This escaped detection
until recently because the soft-float targeted toolchains were
configured to use general-purpose registers for passing floating-point
values (which is what you would expect for soft-float toolchains) and
the intra-routine floating-code was not noticed.
The issue would only show up on targets that were run on hardware that
truly didn't have floating-point hardware where the kernel did not
trap and emulate floating-point routines. This has been solved in
Linaro GCC 6.3-2017.02-rc2 by configuring the toolchain (using
--with-float=soft) to generate code without any floating-point
instructions at all (-mfloat-abi=soft).
https://review.linaro.org/#/c/16968/2
This change should not break compatibility between existing binaries
compiled with these toolchains since the float-point parameter passing
ABI is still the same.
* A bug/regression in the compiler has been identified whereby the
target function that is invoked when calling a "weak" function
directly is the "strong" override, whereas when calling the function
via a pointer the "weak" implementation is used. This would be
noticed as inconsistent function invocation when invoking directly vs.
invoking via function pointer. This issue only affected 32-bit arm
targets. This regression has been fixed upstream and backported into
Linaro GCC 6.3-2017.02-rc2.
GCC PR target/78253: [5/6/7 Regression] [ARM] call weak function
instead of strong when called through pointer.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78253
Linaro bugzilla #2562: ARM GCC 5.2 call weak function instead of
strong when called through pointer
https://bugs.linaro.org/show_bug.cgi?id=2562
* MS Windows does not support symlinks and the MS Windows archive
extractor does not properly deep copy the symlink target
files/directories into the symlinked directory structure when
unpacking the toolchain archive. This causes problems with missing
dependencies when using the Linaro mingw toolchains, as identified in
the following bugs:
https://bugs.linaro.org/show_bug.cgi?id=2684https://bugs.linaro.org/show_bug.cgi?id=2192https://bugs.linaro.org/show_bug.cgi?id=2762
This has been solved by copying files rather than using symlinks when
the mingw targetted toolchain archives are created.
https://review.linaro.org/#/c/16415/
* Users of Linaro's toolchain have encountered problems when building
projects with Autotools (specifically libtool):
https://bugs.linaro.org/show_bug.cgi?id=2764
The Linaro binary toolchain release contained files with a .la suffix
as artifacts of the toolchain build process. These .la files are
helper files for libtool, but unlike a gcc install tree, they are not
position independent and contain full paths. Since these artifacts
contain absolute paths they can actually mislead user invocation of
libtool into not finding required libraries (because they reference
the build tree, not the install location) and hence breaking Autotools
builds. These *.la file artifacts have been removed from Linaro
toolchain binaries because they are unnecessary for users.
* The Linaro GCC 6.3-2017.01 snapshot added further enablement for
ARMv8-M and these have been incorporated into this release.
* Compiling and statically linking some SPEC2006int tests against
tcmalloc have been failing due to a problem with glibc's memory
allocator function overrides. This was fixed upstream:
https://sourceware.org/bugzilla/show_bug.cgi?id=20432
Backported into Linaro glibc 2.23:
commit 058b5a41d56b9a8860dede14d97dd443792d064b
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Aug 26 22:40:27 2016 +0200
malloc: Simplify static malloc interposition [BZ #20432]
* Host binaries for x86_64 linux hosts now have symbols and debug
information stripped in order to reduce the size of the toolchain
binary archives. This reduces the archive size from 1.5G to 600M for
aarch64-linux-gnu target with the gcc-6-branch.
* The GDB version was upgraded from GDB 7.11 in the Linaro GCC
6.1-2016.08 release to GDB 7.12 in the Linaro GCC 6.2-2016.11 release.
* The Linaro GCC 6.2-2016.10 snapshot added AArch32 support for ARMv8.2
and ARMv8m, as well as some AArch64 fixes for ARMv8.2, and bug fixes
merged from FSF GCC 6.2. This is available in the binary toolchain as
of Linaro GCC 6.2-2016.11.
* Basic tuning support for the Qualcomm qdf24xx was added to the Linaro
GCC 6.2-2016.10 snapshot and is available in the binary toolchain as
of Linaro GCC 6.2-2016.11.
* IFUNC was disabled for baremetal targets, as it was causing test-suite
failures, and is presently a Linux only feature.
* The gold linker was added to this binary release.
* Backported malloc_lock fix into Linaro newlib 2.4.
commit 2665915cfc46aa6403bb2efd473c523d3167e0cb
Author: Andre Vieira (lists) <Andre.SimoesDiasVieira(a)arm.com>
Date: Thu Jun 16 12:23:51 2016 +0100
Re-enable malloc_lock for newlib-nano
* Backported rawmemchr patch into Linaro newlib 2.4.
commit e7b1ee2ea6aa3ee1da41976407410e6202a098c5
Author: Wilco Dijkstra <Wilco.Dijkstra(a)arm.com>
Date: Thu May 12 16:16:58 2016 +0000
Add rawmemchr
* Backported strlen fix when using Thumb-2 and -Os -marm into Linaro
newlib 2.4.
commit 5c02bcc086a96b174e1b9e1445a4a1770070107a
Author: Thomas Preud'homme <thomas.preudhomme(a)arm.com>
Date: Wed May 11 17:18:48 2016 -0400
Fix strlen using Thumb-2 with -Os -marm
* Backported fix for semihosting ARM when heapinfo not provided by
debugger into Linaro newlib 2.4.
commit 5c9403eaf40951f8a4f55ed65f661b485ff44be7
Author: David Hoover <spm2(a)dangerous.li>
Date: Thu Apr 21 07:12:24 2016 +0200
Fixed semihosting for ARM when heapinfo not provided by debugger.
* Merged latest FSF glibc release/2.23/master into Linaro glibc 2.23.
* Backported __ASSUME_REQUEUE_PI check Linaro glibc 2.23 branch.
commit 2d20c3bf918cd94ebd4106693adb3a5c9272baba
Author: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
Date: Tue May 17 10:16:39 2016 -0300
Add runtime check for __ASSUME_REQUEUE_PI (BZ# 18463)
* Backported removal of __ASSUME_SET_ROBUST_LIST from Linaro glibc 2.23
branch.
commit bb8f09d72756186a3d82a1f7b2adcf8bc1fbaed1
Author: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
Date: Mon May 16 19:01:10 2016 -0300
Remove __ASSUME_SET_ROBUST_LIST
* Backported removal of __ASSUME_FUTEX_LOCK_PI from Linaro glibc 2.23
branch.
commit e48b4e7fed0de06dd7832ead48bea8ebc813a204
Author: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
Date: Mon May 16 10:35:25 2016 -0300
Remove __ASSUME_FUTEX_LOCK_PI
* Merged latest FSF binutils-2_27-branch into
linaro_binutils-2_27-branch.
* The libwinpthread DLL is now copied into the host bin directory to
satisfy mingw package dependencies.
* Backported GNU Linker fix.
commit fbc6c6763e70cb2376e2de990c7fc54c0ee44a59
Author: Nick Clifton <nickc(a)redhat.com>
Date: Tue Aug 23 09:45:11 2016 +0100
Fix seg-fault in ARM linker when trying to parse a binary file.
* Backported GNU Assembler fix for PR 20364
commit 5fe7ebe5ab43750abf8f490b785d99a1e598e7fd
Author: Nick Clifton <nickc(a)redhat.com>
Date: Fri Aug 5 10:37:57 2016 +0100
Fix the generation of alignment frags in code sections for AArch64.
https://sourceware.org/bugzilla/show_bug.cgi?id=20364
* Performance related backports from the following snapshots have been
included: Linaro GCC 6.1-2016.06, Linaro GCC 6.1-2016.07, Linaro GCC
6.1-2016.08, Linaro GCC 6.2-2016.09, Linaro GCC 6.2-2016.10, Linaro
GCC 6.2-2016.11, Linaro GCC 6.2-2016.12, Linaro GCC 6.3-2017.01,
Linaro GCC 6.3-2017.02, Linaro GCC 6.3-2017.03, Linaro GCC
6.3-2017.04, Linaro GCC 6.3-2017.05, Linaro GCC 6.3-2017.06, Linaro
GCC 6.4-2017.07, Linaro GCC 6.4-2017.08, Linaro GCC 6.4-2017.09 and
Linaro GCC 6.4-2017.10 .
See the following Linaro GCC snapshots:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.06/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.07/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.08/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.09/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.10/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.11/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.12/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.01/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.02/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.03/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.04/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.05/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.06/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.07/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.08/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.09/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.10/
Contact Linaro
===============
File bugs at http://bugs.linaro.org
For Linaro member support see http://support.linaro.org
For Linaro community support email linaro-toolchain(a)lists.linaro.org
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.
* 2 days off (Internal Training)
== Progress ==
o Linaro GCC/Validation
* Final GCC 5.5 release deployed and announced
* GCC 6.4 and 7.2 deployed
* 2017.11 snapshots on-going (branch merges done)
o LLVM ramp-up
* Upstream BZ 32999:
- Addressing upstream comments.
* Upstream BZ 35272:
- Analysed and commented upstream.
o Misc
* Various meetings and discussions.
== Plan ==
o Continue on on-going LLVM Bugs.
o Wednesday off
# Progress #
* TCWG-1040, [4/10]
Update my patches to remove the last use of MAX_REGISTER_SIZE.
Commit my 1/6 patch series. Prepare 2/6 patch series. Need to be
sync'ed with GDB 8.1 release.
* TCWG-1159, [4/10] GDB flexible target description conversion.
Commit patch for tic6x, and ready to post patches for nios2.
* Run GDB testsuite with CLANG. [1/10]
Commit my patches, but leave some controversial patches in my tree.
Now, I get some reasonable GDB test result with clang.
* Upstream patches review. [1/10]
Approved four Alan's patches.
# Plan #
* ARMv8 tagged pointer support in GDB.
* Update my patches to remove the last use of MAX_REGISTER_SIZE.
--
Yao Qi
== Progress ==
* GCC
- FDPIC: hitting a linker assert while building gcc target libs
* GCC upstream validation:
- reported a few regressions, fixed a couple of obvious errors
- struggling with ST-internal infrastructure difficulties
* Infrastructure:
- looking at ABE & building a native toolchain from a manifest
* misc (conf-calls, meetings, emails, ....)
- became 1 year older :)
== Next ==
* GCC/FDPIC
* GCC upstream validation
== This Week ==
* PR82665 (3/10)
- Submitted patch upstream
- Blocked on POINTER_DIFF_EXPR patch by Marc Glisse.
* PR82808 (1/10)
- Submitted another fix but was rejected by Richard.
* TCWG-1234 (4/10)
- Tried tweaking with register allocator, but to no effect
- Trying to think about possible approaches for stage-3 fixes.
* Misc (2/10)
- Meetings
- Managed to get autofdo working
== Next Week ==
- Continue ongoing tasks
== Progress ==
* GCC
- FDPIC: rebased binutils patches, debugging CI loop.
* GCC upstream validation:
- iterating on qemu/sanitizers problems.
Found a bug in arm sanitizer libs, already fixed upstream.
Requested a new merge in GCC.
- reported a few regressions
* Infrastructure:
- looking at ABE & building a native toolchain from a manifest
* misc (conf-calls, meetings, emails, ....)
- started looking at hcqc
== Next ==
* GCC/FDPIC
* GCC upstream validation
# Progress #
* TCWG-1040, [4/10]
Update my patches to remove the last use of MAX_REGISTER_SIZE.
Get everything in shape. Post my 1/6 patch series.
* TCWG-1159, [4/10] GDB flexible target description conversion.
Post patch for tic6x, and write the patch for nios2.
* ILP32 GDB. [1/10]
Chat with Maxim, triage some test failures.
* Open GCC PR 83010.
AArch64 GCC doesn't generate DW_AT_location for TLS variable. It
causes some GDB test failures. CLANG+GOLD can correctly generate
DW_AT_location.
* Run GDB testsuite with CLANG. [1/10]
Post three patches to GDB testsuite to compile test cases with CLANG.
# Plan #
* TCWG-1125, ARMv8 tagged address support in GDB.
--
Yao Qi
Hi Linaro Team,
I'm currently using toolchain
gcc-linaro-7.1.1-2017.08-x86_64_arm-eabi.tar.xz
<https://releases.linaro.org/components/toolchain/binaries/latest/arm-eabi/g…>
to
develop my bera-metal programs.
My compile option is "-marm -march=armv7-a -mtune=cortex-a9 -mlittle-endian
-mfloat-abi=hard -mfpu=neon"
I found an issue, when I use memcpy, and if the DEST or SOURCE address is
not 4 bytes aligned, the system hangs.
It seems that this toolchain doesn't support using hard float and NEON ?
My question is does this toolchain support hard float and NEON in the
newlib C library?
If I want to use hard float and NEON, how can I do that?
Your reply is more appreciated!!
Over the last couple of months arm64 community and us have tested various aspects of ILP32 toolchain and, while most of toolchain works as expected, several features are still missing. Most of the work left is on GDB side, especially using LP64 GDB to debug ILP32 applications.
1. [GCC] GCC sanitizers (ASAN, UBSAN) are not supported for ILP32.
-- TCWG is working on implementing sanitizer support for ILP32.
2. [GLIBC] LP64 glibc libthread_db does not support ILP32. This causes failures when LP64 GDB is trying to debug ILP32 threaded application. It is expected by users to be able to use LP64 GDB to debug ILP32 applications (LP64 AArch64 GDB can successfully debug AArch32 applications already!).
-- Steve, do you plan to work on adding libthread_db support for ILP32?
3. [GDB] Handle ILP32 siginfo layout. Kernel siginfo layout is different between LP64 and ILP32.
4. [GDB] Inferior call passing pointer argument. GDB may need update to handle 32-bit pointer vs 64-bit pointer.
5. Handle shared libraries. GDB needs to read a linked list out of the inferior, and that list is about the libraries loaded already. LP64 and ILP32 may have different layouts.
6. [GDB] GDB resolves ifunc functions, needs to read auxv (HWCAP) from the inferior. auxv is different on LP64 and ILP32.
7. [GDB] Gdbserver support for ILP32.
--
Maxim Kuvyrkov
www.linaro.org