Discussion:
[tex-k] Apparent include loop in str-llist.h
Norman Gray
2013-04-14 11:23:50 UTC
Permalink
Greetings.

When trying to build a standalone version of the kpathsea library, I've come across what appears to be an include loop in the headers.

kpathsea/types.h includes kpathsea/str-llist.h, which includes kpathsea/types.h. This leads at least one version of gcc into terminal confusion:

% gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

% cat try.c
#include <kpathsea/pathsearch.h>
% gcc -I $T/kpathsea-6.1.1/include try.c
In file included from /Data/tools/kpathsea-6.1.1/include/kpathsea/str-llist.h:26,
from /Data/tools/kpathsea-6.1.1/include/kpathsea/pathsearch.h:23,
from try.c:1:
/Data/tools/kpathsea-6.1.1/include/kpathsea/types.h:88: error: expected specifier-qualifier-list before ?str_llist_type?
%

(Here, .../kpathsea-6.1.1 contains an install of the current SVN HEAD).

Note: i686-apple-darwin11-llvm-gcc-4.2 is the default compiler on OS X 10.8.

This is fixed (not necessarily ideally) by:

% svn diff str-llist.h
Index: str-llist.h
===================================================================
--- str-llist.h (revision 29913)
+++ str-llist.h (working copy)
@@ -23,7 +23,9 @@
#define STR_LLIST_H

#include <kpathsea/c-proto.h>
-#include <kpathsea/types.h>
+/* Do not include types.h, because that wants to include this file */
+/* types.h defines string to be char* and boolean to be int */
+/* #include <kpathsea/types.h> */


/* It's a little bizarre to be using the same type for the list and the
@@ -33,8 +35,10 @@

struct str_llist_elt
{
- string str;
- boolean moved;
+ char * str;
+ int moved;
+ /* string str; */ /* ...with types.h */
+ /* boolean moved; */
struct str_llist_elt *next;
};
typedef struct str_llist_elt str_llist_elt_type;
%

Best wishes,

Norman
--
Norman Gray : http://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK
Loading...