aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2014-11-14 09:07:17 +0000
committerYvan Roux <yvan.roux@linaro.org>2014-11-14 09:07:17 +0000
commitba02c94e9fffd1026f39ca23bb58e9f7ac08b48f (patch)
tree295a3e1bbba0743958f90fd4c7f7ee268524f202
parent60a73fc91b3401be2d86966c4f2529a3c1516612 (diff)
2014-11-14 Yvan Roux <yvan.roux@linaro.org>
Add Linaro release macros (Linaro only patch.) * Makefile.in (LINAROVER, LINAROVER_C, LINAROVER_S): Define. (CFLAGS-cppbuiltin.o): Add LINAROVER macro definition. (cppbuiltin.o): Depend on $(LINAROVER). * cppbuiltin.c (parse_linarover): New. (define_GNUC__): Define __LINARO_RELEASE__ and __LINARO_SPIN__ macros. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@217544 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.linaro10
-rw-r--r--gcc/Makefile.in8
-rw-r--r--gcc/cppbuiltin.c25
3 files changed, 40 insertions, 3 deletions
diff --git a/gcc/ChangeLog.linaro b/gcc/ChangeLog.linaro
index c7cd5108dae..1f941844f2c 100644
--- a/gcc/ChangeLog.linaro
+++ b/gcc/ChangeLog.linaro
@@ -1,3 +1,13 @@
+2014-11-14 Yvan Roux <yvan.roux@linaro.org>
+
+ Add Linaro release macros (Linaro only patch.)
+
+ * Makefile.in (LINAROVER, LINAROVER_C, LINAROVER_S): Define.
+ (CFLAGS-cppbuiltin.o): Add LINAROVER macro definition.
+ (cppbuiltin.o): Depend on $(LINAROVER).
+ * cppbuiltin.c (parse_linarover): New.
+ (define_GNUC__): Define __LINARO_RELEASE__ and __LINARO_SPIN__ macros.
+
2014-11-13 Yvan Roux <yvan.roux@linaro.org>
Backport from trunk r216229, r216230.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 7565c58967b..678f5dffdbd 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -814,10 +814,12 @@ BASEVER := $(srcdir)/BASE-VER # 4.x.y
DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty
REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX]
+LINAROVER := $(srcdir)/LINARO-VERSION # M.x-YYYY.MM[-S][~dev]
BASEVER_c := $(shell cat $(BASEVER))
DEVPHASE_c := $(shell cat $(DEVPHASE))
DATESTAMP_c := $(shell cat $(DATESTAMP))
+LINAROVER_c := $(shell cat $(LINAROVER))
ifeq (,$(wildcard $(REVISION)))
REVISION_c :=
@@ -838,6 +840,7 @@ DEVPHASE_s := "\"$(if $(DEVPHASE_c), ($(DEVPHASE_c)))\""
DATESTAMP_s := "\"$(if $(DEVPHASE_c), $(DATESTAMP_c))\""
PKGVERSION_s:= "\"@PKGVERSION@\""
BUGURL_s := "\"@REPORT_BUGS_TO@\""
+LINAROVER_s := "\"$(LINAROVER_c)\""
PKGVERSION := @PKGVERSION@
BUGURL_TEXI := @REPORT_BUGS_TEXI@
@@ -2542,8 +2545,9 @@ PREPROCESSOR_DEFINES = \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
@TARGET_SYSTEM_ROOT_DEFINE@
-CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s)
-cppbuiltin.o: $(BASEVER)
+CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) \
+ -DLINAROVER=$(LINAROVER_s)
+cppbuiltin.o: $(BASEVER) $(LINAROVER)
CFLAGS-cppdefault.o += $(PREPROCESSOR_DEFINES)
diff --git a/gcc/cppbuiltin.c b/gcc/cppbuiltin.c
index 8b2c6b4d3d2..da40e29fff5 100644
--- a/gcc/cppbuiltin.c
+++ b/gcc/cppbuiltin.c
@@ -53,18 +53,41 @@ parse_basever (int *major, int *minor, int *patchlevel)
*patchlevel = s_patchlevel;
}
+/* Parse a LINAROVER version string of the format "M.m-year.month[-spin][~dev]"
+ to create Linaro release number YYYYMM and spin version. */
+static void
+parse_linarover (int *release, int *spin)
+{
+ static int s_year = -1, s_month, s_spin;
+
+ if (s_year == -1)
+ if (sscanf (LINAROVER, "%*[^-]-%d.%d-%d", &s_year, &s_month, &s_spin) != 3)
+ {
+ sscanf (LINAROVER, "%*[^-]-%d.%d", &s_year, &s_month);
+ s_spin = 0;
+ }
+
+ if (release)
+ *release = s_year * 100 + s_month;
+
+ if (spin)
+ *spin = s_spin;
+}
/* Define __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ and __VERSION__. */
static void
define__GNUC__ (cpp_reader *pfile)
{
- int major, minor, patchlevel;
+ int major, minor, patchlevel, linaro_release, linaro_spin;
parse_basever (&major, &minor, &patchlevel);
+ parse_linarover (&linaro_release, &linaro_spin);
cpp_define_formatted (pfile, "__GNUC__=%d", major);
cpp_define_formatted (pfile, "__GNUC_MINOR__=%d", minor);
cpp_define_formatted (pfile, "__GNUC_PATCHLEVEL__=%d", patchlevel);
cpp_define_formatted (pfile, "__VERSION__=\"%s\"", version_string);
+ cpp_define_formatted (pfile, "__LINARO_RELEASE__=%d", linaro_release);
+ cpp_define_formatted (pfile, "__LINARO_SPIN__=%d", linaro_spin);
cpp_define_formatted (pfile, "__ATOMIC_RELAXED=%d", MEMMODEL_RELAXED);
cpp_define_formatted (pfile, "__ATOMIC_SEQ_CST=%d", MEMMODEL_SEQ_CST);
cpp_define_formatted (pfile, "__ATOMIC_ACQUIRE=%d", MEMMODEL_ACQUIRE);