|
From: | Paul Eggert |
Subject: | Re: ctype.h:192: error: parse error before '{' token |
Date: | Wed, 17 Jul 2019 18:03:33 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
Jeffrey Walton wrote:
This fixes the issue for GCC 3.1 (Fedora 1) and GCC 3.3 (Ubuntu 4).
I don't see how that patch could fix the issue for GCC 3.1, since it simply changes a test to check for GCC 3.4 instead of 3.3, so GCC 3.1 should behave the same regardless of whether the patch is installed.
for file in $(find "$PWD" -name '*.h') do if [[ ! -f "$file" ]]; then continue fi sed -e 's|__GNUC_PREREQ (3, 3)|__GNUC_PREREQ (3, 4)|g' "$file" > "$file.fixed" mv "$file.fixed" "$file" done I don't know if the issue is present in GCC 3.4.
The only instance of '__GNUC_PREREQ (3, 3)' is the one in lib/cdefs.h, so I assume that's the only thing causing you problems. The '__GNUC_PREREQ (3, 3)' comes straight from glibc misc/sys/cdefs.h (installed as /usr/include/sys/cdefs.h on my platform). So if there's a problem here, presumably the problem is also in current glibc.
Can you investigate why current glibc's approach does not work for you, whereas old-fashioned glibc does? For example, what does /usr/include/sys/cdefs.h look like on these older platforms, and why do their definitions of __THROW work when Gnulib's doesn't?
As Bruno says, these ancient systems are low priority for Gnulib, but if we know why the fix is a good one we can install it (and I assume propagate the fix back to glibc....).
[Prev in Thread] | Current Thread | [Next in Thread] |