Around 2012-07-07 00:45 UTC, I pulled master commit 2758492 and tried
to build on ubuntu-natty (11.04), which has gcc version 4.5.2. The
gcc compiles downstream from files cfglex.l, xrmlex.l, and srclex.l in
l10ntools/source/ each failed with the message
error: unknown option after ‘#pragma GCC diagnostic’ kind
Each time, the offending line was
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
Taking a hint from <https://lkml.org/lkml/2011/7/26/488>, I
conditioned the three lines by
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
which allows a successful build. I attach a patch, just in case this
situation of interest and this is the right solution; my blanket
licence statement is on file.
My setup of gedit also removed trailing spaces from two lines in each
of srclex.l and xrmlex.l. I understand that trailing spaces are
generally not wanted, so I am not trying to fix this accident.
<aside>
After I changed the three .l files, the build system picked up the
changes without any "clean". So I am left wondering how my build of
master commit 96caa3b (2012-06-07) succeeded after the offending
#pragma was added to cfglex.l on 2012-05-02. Ah well, nowhere is it
written that I shall understand everything.
</aside>
From 37c3004e4c95433aa63a53295e93d181e432d11e Mon Sep 17 00:00:00 2001
From: Terrence Enger <tenger@iseries-guru.com>
Date: Sat, 7 Jul 2012 11:32:52 -0400
Subject: [PATCH] "Wunused-but-set-variable" was new in gcc 4.6
Condition new #pragma by gcc version
Change-Id: I0e5273c267e3514529de90d79cc221b44dbdcf9c
---
l10ntools/source/cfglex.l | 2 ++
l10ntools/source/srclex.l | 6 ++++--
l10ntools/source/xrmlex.l | 6 ++++--
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/l10ntools/source/cfglex.l b/l10ntools/source/cfglex.l
index dda0246..7476cbf 100644
--- a/l10ntools/source/cfglex.l
+++ b/l10ntools/source/cfglex.l
@@ -27,6 +27,8 @@
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic ignored "-Wunused-label"
+#endif
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#endif
#elif defined __SINPRO_CC
diff --git a/l10ntools/source/srclex.l b/l10ntools/source/srclex.l
index 6001725..2fbd3f0 100644
--- a/l10ntools/source/srclex.l
+++ b/l10ntools/source/srclex.l
@@ -28,6 +28,8 @@
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic ignored "-Wunused-label"
+#endif
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#endif
#elif defined __SINPRO_CC
@@ -154,8 +156,8 @@ void YYWarning();
WorkOnTokenSet( TEXTREFID, yytext );
}
-[a-zA-Z0-9_]+[ \t]*"="[\t ]*([ \t]*"//".*\n)*.* |
-[a-zA-Z0-9_]+[ \t]*"=".* {
+[a-zA-Z0-9_]+[ \t]*"="[\t ]*([ \t]*"//".*\n)*.* |
+[a-zA-Z0-9_]+[ \t]*"=".* {
/* ASSIGNMENT Typ = ... */
WorkOnTokenSet( ASSIGNMENT, yytext );
}
diff --git a/l10ntools/source/xrmlex.l b/l10ntools/source/xrmlex.l
index 5e00cc1..9e9aa5c 100644
--- a/l10ntools/source/xrmlex.l
+++ b/l10ntools/source/xrmlex.l
@@ -17,7 +17,7 @@
#endif
/* table of possible token ids */
-#include "tokens.h"
+#include "tokens.h"
#include <stdlib.h>
#include <stdio.h>
@@ -27,6 +27,8 @@
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic ignored "-Wunused-label"
+#endif
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#endif
#elif defined __SINPRO_CC
@@ -154,7 +156,7 @@ int bText=0;
c2 = c3;
c3 = yyinput();
pChar[0] = c3;
- WorkOnTokenSet( COMMEND, pChar );
+ WorkOnTokenSet( COMMEND, pChar );
}
}
--
1.7.4.1
Context
- [PATCH] build problem with gcc 4.5.2 · Terrence Enger
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.