Hi,
after the recent lkml thread on blacklisting some GCC versions (see
below) and the issue in identifying accurately our releases, I propose
to add some Linaro specific macros in our branches (i.e this patch
will not go upstream) to be able to check the Linaro version at
preprocessor time. It will not solve the kernel issue with 4.8.N but
hopefully help if such issues happen again the the futur.
http://thread.gmane.org/gmane.linux.ports.arm.omap/119412
What GCC has for the moment is 3 macros __GNUC__, __GNUC_MINOR__ and
__GNUC_PATCHLEVEL__ that are filled by parsing version number
contained in BASE-VER file, for instance on our 4.9 branch:
__GNUC__ = 4
__GNUC_MINOR__ = 9
__GNUC_PATCHLEVEL__ = 2
In our branches, the Linaro version number is in the LINARO-VERSION
file and has this format:
At release point : 4.9-2014.10
Head of our branch: 4.9-2014.10-1~dev
I want your (the team and users) point of view on the macros we need
to create from it. Here is the options I see:
A - Be fully Linaro consistent:
__LINARO_MAJOR__ = 4
__LINARO_MINOR__ = 9
__LINARO_YEAR__ = 2014
__LINARO_MONTH__ = 10
__LINARO_SPIN__ = 0 or N
__LINARO_STATE = 0 for release or 1 for dev
B - Only give information that are not in the __GNUC* macros:
__LINARO_YEAR__ = 2014
__LINARO_MONTH__ = 10
__LINARO_SPIN__ = 0 or N
__LINARO_STATE = 0 for release or 1 for dev
C - Be more concise:
__LINARO_VERSION__ = 201410
__LINARO_SPIN__ = 0 or N
__LINARO_STATE = 0 for release or 1 for dev
D - Even more:
__LINARO_VERSION__ = 201410N (with N the spin number)
__LINARO_STATE = 0 for release or 1 for dev
E - Hardcore conciseness:
__LINARO__ = 201410NM (N = SPIN M = state)
F - One of the previous ones without STATE information.
G - One of the previous ones without SPIN information.
Do you think it is something we need ?
Do we already have that kind of macros in some products (binutils,
gdb, glibc, ...) ?
What option do you prefer ?
My own feeling is that C+F is sufficient as STATE information is
useless for releases and I don't think dev builds checking have to be
used in another project. But SPIN information can be useful has we're
doing respin because an outstanding issue/improvement has to be
fixed/added to the current release, thus it is the kind of thing you
want to check if the version of the compiler you are using contains.
Thanks,
Yvan
Dear all concerned:
ARM has reported it's 53's bug:AArch64 multiply-accumulate instruction might produce incorrect result
and developed the patch descriped below. will the patch be backported to Linaro 4.9 this month's release.
https://gcc.gnu.org/ml/gcc-cvs/2014-10/msg00335.html
thanks
Peter
cbuild2 benchmarking - TCWG-360 [8/10]
* Scripts build SPEC 2006 tools on x86_64 and arm, not yet on AArch64
* Scripts cross-build for x86 to arm and aarch64
* Cross-built binaries refuse to run
Meetings/mail/etc - [2/10]
=Plan=
cbuild2 benchmarking
* Make cross-built binaries run, collect reports
* Build tools for AArch64 (lower priority)
libm exerising
* Work through list of benchmarks, see what I find
= Progress ==
* TCWG-544 - Investigate core mark performance with both at -O3 with LTO +
PGO (6/10)
* Misc [3/10]
emails, linaro and AMD meetings and 1-1 with inline manger.
1-1 with christophe.
* Tried to reproduce Bug 63653 (1/10)
== Plan ==
* Continue core mark performance with both at -O3 with LTO + PGO.
* Continue Bugfix 63653
== Progress ==
GDB Tracepoints/Fast Tracepoints support on arm [TCWG-480] [3/10]
-- Investigate arm hardware debugging capabilities in linux kernel.
ARM/AArch64 GDB testsuite failures investigation [TCWG-507] [4/10]
Trying out patches that add support for gdbserver catch vfork/fork
[TCWG-507] [2/10]
Miscellaneous [1/10]
-- Meetings, Emails etc
-- Annual Review 2014
== Plan ==
Monday/Tuesday Public Holidays in Pakistan.
Fix watchpoints-reuse-slot tests for arm somehow to allow skipping
unsupported tests
Also investigate the same on AArch64. [TCWG-507]
Re-submit some hanging patches after a bit of rework to grab attention.
== This week ==
* GCC Modularization Project (7/10)
- Decided on work near term work objectives with Andrew Macleod
- Began flattening header files
- gimple-streamer.h (complete)
- tree-streamer.h (complete)
- lto-streamer.h (complete)
- tree-core.h (In progress)
- cfgloop.h (In Progress
- df.h (In progress)
* Vector Extensions Project (2/10)
- Design work on C++ classes
- Call with Charles Baylis to discuss libvpx benchmark
* Misc. (1/10)
- Conference calls
- ARM required online training
== Next week ==
- Continue flattening of header files on GCC modularization project
- Further review of libvpx and vector extensions design work