bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gperf 3.1 breaks module unicase


From: Bruno Haible
Subject: Re: gperf 3.1 breaks module unicase
Date: Thu, 18 May 2017 12:58:37 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-75-generic; KDE/5.18.0; x86_64; ; )

On 2017-02-13 I wrote:
> If you have some more time to play with it, how about mechanically copying
> the declaration from the generated file into lib/unicase/special-casing.h ?
> I mean, to modify the module description with a command such as
> 
>   grep '^gl_unicase_special_lookup' $(srcdir)/unicase/special-casing-table.h 
> | sed -e 's/register //' -e 's/^/       /' -e 's/$/;/'

Since the gperf 3.0.x incompatiblity issue is coming up again, let me fix it:


2017-05-18  Bruno Haible  <address@hidden>

        unicase/special-casing: Fix incompatibility with gperf-3.0.4
        (regression from 2017-02-13).
        * lib/unicase/special-casing.in.h: Renamed from
        lib/unicase/special-casing.h.
        * modules/unicase/special-casing (Files): Add
        lib/unicase/special-casing.in.h. Remove lib/unicase/special-casing.h.
        (Makefile.am): Add rule for generating unicase/special-casing.h.
        Update BUILT_SOURCES and MOSTLYCLEANFILES accordingly.
        * lib/unicase/special-casing.c: Include "unicase/special-casing.h",
        not "special-casing.h".
        * lib/unicase/u*.c: Likewise.

diff --git a/modules/unicase/special-casing b/modules/unicase/special-casing
index 0f863a3..a4a7fcf 100644
--- a/modules/unicase/special-casing
+++ b/modules/unicase/special-casing
@@ -2,7 +2,7 @@ Description:
 Special casing table.
 
 Files:
-lib/unicase/special-casing.h
+lib/unicase/special-casing.in.h
 lib/unicase/special-casing.c
 lib/unicase/special-casing-table.gperf
 
@@ -22,6 +22,17 @@ MOSTLYCLEANFILES     += unicase/special-casing-table.h-t
 MAINTAINERCLEANFILES += unicase/special-casing-table.h
 EXTRA_DIST           += unicase/special-casing-table.h
 
+# Generate special-casing.h with a declaration that depends on the gperf 
version.
+unicase/special-casing.h: unicase/special-casing.in.h 
unicase/special-casing-table.h
+       $(AM_V_GEN)rm -f address@hidden $@ && \
+       declaration=`grep '^gl_unicase_special_lookup' 
$(srcdir)/unicase/special-casing-table.h | sed -e 's/register //g'` && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 
"/gl_unicase_special_lookup/s/gl_unicase_special_lookup.*/$${declaration};/" 
$(srcdir)/unicase/special-casing.in.h; \
+       } > address@hidden && \
+       mv -f address@hidden $@
+BUILT_SOURCES        += unicase/special-casing.h
+MOSTLYCLEANFILES     += unicase/special-casing.h unicase/special-casing.h-t
+
 Include:
 "unicase/special-casing.h"
 
diff --git a/lib/unicase/special-casing.c b/lib/unicase/special-casing.c
index 029c578..384bb71 100644
--- a/lib/unicase/special-casing.c
+++ b/lib/unicase/special-casing.c
@@ -18,7 +18,7 @@
 #include <config.h>
 
 /* Specification.  */
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 #include <string.h>
 
diff --git a/lib/unicase/u16-casemap.c b/lib/unicase/u16-casemap.c
index aec4dd6..3ab5388 100644
--- a/lib/unicase/u16-casemap.c
+++ b/lib/unicase/u16-casemap.c
@@ -29,7 +29,7 @@
 #include "uninorm.h"
 #include "caseprop.h"
 #include "context.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 #define FUNC u16_casemap
 #define UNIT uint16_t
diff --git a/lib/unicase/u16-ct-casefold.c b/lib/unicase/u16-ct-casefold.c
index 1e01d75..71cbf55 100644
--- a/lib/unicase/u16-ct-casefold.c
+++ b/lib/unicase/u16-ct-casefold.c
@@ -25,7 +25,7 @@
 #include <stdlib.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 #include "casefold.h"
 
 #define FUNC u16_ct_casefold
diff --git a/lib/unicase/u16-ct-tolower.c b/lib/unicase/u16-ct-tolower.c
index 76f4be2..9eea5e7 100644
--- a/lib/unicase/u16-ct-tolower.c
+++ b/lib/unicase/u16-ct-tolower.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint16_t *
 u16_ct_tolower (const uint16_t *s, size_t n,
diff --git a/lib/unicase/u16-ct-totitle.c b/lib/unicase/u16-ct-totitle.c
index e369462..158295f 100644
--- a/lib/unicase/u16-ct-totitle.c
+++ b/lib/unicase/u16-ct-totitle.c
@@ -31,7 +31,7 @@
 #include "uninorm.h"
 #include "caseprop.h"
 #include "context.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 #define FUNC u16_ct_totitle
 #define UNIT uint16_t
diff --git a/lib/unicase/u16-ct-toupper.c b/lib/unicase/u16-ct-toupper.c
index b7f188d..40441a1 100644
--- a/lib/unicase/u16-ct-toupper.c
+++ b/lib/unicase/u16-ct-toupper.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint16_t *
 u16_ct_toupper (const uint16_t *s, size_t n,
diff --git a/lib/unicase/u16-tolower.c b/lib/unicase/u16-tolower.c
index a59c3ed..1477c18 100644
--- a/lib/unicase/u16-tolower.c
+++ b/lib/unicase/u16-tolower.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint16_t *
 u16_tolower (const uint16_t *s, size_t n, const char *iso639_language,
diff --git a/lib/unicase/u16-toupper.c b/lib/unicase/u16-toupper.c
index ccc9df7..87ad89d 100644
--- a/lib/unicase/u16-toupper.c
+++ b/lib/unicase/u16-toupper.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint16_t *
 u16_toupper (const uint16_t *s, size_t n, const char *iso639_language,
diff --git a/lib/unicase/u32-casemap.c b/lib/unicase/u32-casemap.c
index 2a03ac3..b2411eb 100644
--- a/lib/unicase/u32-casemap.c
+++ b/lib/unicase/u32-casemap.c
@@ -29,7 +29,7 @@
 #include "uninorm.h"
 #include "caseprop.h"
 #include "context.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 #define FUNC u32_casemap
 #define UNIT uint32_t
diff --git a/lib/unicase/u32-ct-casefold.c b/lib/unicase/u32-ct-casefold.c
index 75fab2e..7d58aa5 100644
--- a/lib/unicase/u32-ct-casefold.c
+++ b/lib/unicase/u32-ct-casefold.c
@@ -25,7 +25,7 @@
 #include <stdlib.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 #include "casefold.h"
 
 #define FUNC u32_ct_casefold
diff --git a/lib/unicase/u32-ct-tolower.c b/lib/unicase/u32-ct-tolower.c
index a89a9e6..8daf165 100644
--- a/lib/unicase/u32-ct-tolower.c
+++ b/lib/unicase/u32-ct-tolower.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint32_t *
 u32_ct_tolower (const uint32_t *s, size_t n,
diff --git a/lib/unicase/u32-ct-totitle.c b/lib/unicase/u32-ct-totitle.c
index 1b5fc42..a9ea73f 100644
--- a/lib/unicase/u32-ct-totitle.c
+++ b/lib/unicase/u32-ct-totitle.c
@@ -31,7 +31,7 @@
 #include "uninorm.h"
 #include "caseprop.h"
 #include "context.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 #define FUNC u32_ct_totitle
 #define UNIT uint32_t
diff --git a/lib/unicase/u32-ct-toupper.c b/lib/unicase/u32-ct-toupper.c
index ce26da9..4411dba 100644
--- a/lib/unicase/u32-ct-toupper.c
+++ b/lib/unicase/u32-ct-toupper.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint32_t *
 u32_ct_toupper (const uint32_t *s, size_t n,
diff --git a/lib/unicase/u32-tolower.c b/lib/unicase/u32-tolower.c
index 3a105e3..7d2aced 100644
--- a/lib/unicase/u32-tolower.c
+++ b/lib/unicase/u32-tolower.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint32_t *
 u32_tolower (const uint32_t *s, size_t n, const char *iso639_language,
diff --git a/lib/unicase/u32-toupper.c b/lib/unicase/u32-toupper.c
index f5832db..d93291d 100644
--- a/lib/unicase/u32-toupper.c
+++ b/lib/unicase/u32-toupper.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint32_t *
 u32_toupper (const uint32_t *s, size_t n, const char *iso639_language,
diff --git a/lib/unicase/u8-casemap.c b/lib/unicase/u8-casemap.c
index 7f11333..ca1b18a 100644
--- a/lib/unicase/u8-casemap.c
+++ b/lib/unicase/u8-casemap.c
@@ -29,7 +29,7 @@
 #include "uninorm.h"
 #include "caseprop.h"
 #include "context.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 #define FUNC u8_casemap
 #define UNIT uint8_t
diff --git a/lib/unicase/u8-ct-casefold.c b/lib/unicase/u8-ct-casefold.c
index b22f245..5b64cf0 100644
--- a/lib/unicase/u8-ct-casefold.c
+++ b/lib/unicase/u8-ct-casefold.c
@@ -25,7 +25,7 @@
 #include <stdlib.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 #include "casefold.h"
 
 #define FUNC u8_ct_casefold
diff --git a/lib/unicase/u8-ct-tolower.c b/lib/unicase/u8-ct-tolower.c
index 169dc91..aff70dd 100644
--- a/lib/unicase/u8-ct-tolower.c
+++ b/lib/unicase/u8-ct-tolower.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint8_t *
 u8_ct_tolower (const uint8_t *s, size_t n,
diff --git a/lib/unicase/u8-ct-totitle.c b/lib/unicase/u8-ct-totitle.c
index cdee074..b74cc27 100644
--- a/lib/unicase/u8-ct-totitle.c
+++ b/lib/unicase/u8-ct-totitle.c
@@ -31,7 +31,7 @@
 #include "uninorm.h"
 #include "caseprop.h"
 #include "context.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 #define FUNC u8_ct_totitle
 #define UNIT uint8_t
diff --git a/lib/unicase/u8-ct-toupper.c b/lib/unicase/u8-ct-toupper.c
index f6d9d76..7ddb046 100644
--- a/lib/unicase/u8-ct-toupper.c
+++ b/lib/unicase/u8-ct-toupper.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint8_t *
 u8_ct_toupper (const uint8_t *s, size_t n,
diff --git a/lib/unicase/u8-tolower.c b/lib/unicase/u8-tolower.c
index 0e38379..9681bd5 100644
--- a/lib/unicase/u8-tolower.c
+++ b/lib/unicase/u8-tolower.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint8_t *
 u8_tolower (const uint8_t *s, size_t n, const char *iso639_language,
diff --git a/lib/unicase/u8-toupper.c b/lib/unicase/u8-toupper.c
index 18b899d..6ddad44 100644
--- a/lib/unicase/u8-toupper.c
+++ b/lib/unicase/u8-toupper.c
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 #include "unicasemap.h"
-#include "special-casing.h"
+#include "unicase/special-casing.h"
 
 uint8_t *
 u8_toupper (const uint8_t *s, size_t n, const char *iso639_language,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]