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!