[tlbuild] problems with solaris & ICU
Mojca Miklavec
mojca.miklavec.lists at gmail.com
Wed Mar 13 15:40:57 CET 2013
On Wed, Mar 13, 2013 at 2:21 PM, Apostolos Syropoulos wrote:
> Speaking about errors. I have tried to compile revision 29367 and it stopped
> with the following error (I am on OpenSolaris):
>
> make[5]: Entering directory `/container/TeX/source/Work/libs/graphite2'
> depbase=`echo graphite2-1.2.1/src/Bidi.o | sed
> 's|[^/]*$|.deps/&|;s|\.o$||'`;\
> g++64 -DHAVE_CONFIG_H -I. -I../../../libs/graphite2
> -I../../../libs/graphite2/graphite2-1.2.1/src
> -I../../../libs/graphite2/graphite2-1.2.1/include -DGRAPHITE2_STATIC
> -DGRAPHITE2_CUSTOM_HEADER='<config.h>' -DGRAPHITE2_NSEGCACHE
> -DGRAPHITE2_NTRACING -g -O2 -MT graphite2-1.2.1/src/Bidi.o -MD -MP -MF
> $depbase.Tpo -c -o graphite2-1.2.1/src/Bidi.o
> ../../../libs/graphite2/graphite2-1.2.1/src/Bidi.cpp &&\
> mv -f $depbase.Tpo $depbase.Po
> ../../../libs/graphite2/graphite2-1.2.1/src/Bidi.cpp:40:9: σφάλμα: expected
> identifier before numeric constant
> ../../../libs/graphite2/graphite2-1.2.1/src/Bidi.cpp:40:9: σφάλμα: expected
> ‘}’ before numeric constant
> ../../../libs/graphite2/graphite2-1.2.1/src/Bidi.cpp:40:9: σφάλμα: expected
> unqualified-id before numeric constant
> ../../../libs/graphite2/graphite2-1.2.1/src/Bidi.cpp:55:1: σφάλμα: expected
> declaration before ‘}’ token
> make[5]: *** [graphite2-1.2.1/src/Bidi.o] Error 1
> make[5]: Leaving directory `/container/TeX/source/Work/libs/graphite2'
> make[4]: *** [all-recursive] Error 1
> make[4]: Leaving directory `/container/TeX/source/Work/libs/graphite2'
> make[3]: *** [all] Error 2
> make[3]: Leaving directory `/container/TeX/source/Work/libs/graphite2'
> make[2]: *** [sublibs] Error 1
> make[2]: Leaving directory `/container/TeX/source/Work/libs'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/container/TeX/source/Work/libs'
> make: *** [all-recursive] Error 1
> + echo 2
>
>
> Anyone seen this error before?
Yes, it has been reported yesterday by Marco on the building list for
ConTeXt. I remember a very similar problem with clang on Mac OS X,
only in a different file. Citing:
---------
The corresponding lines are:
27 #include "inc/Main.h"
28 #include "inc/Slot.h"
29 #include "inc/Segment.h"
30
31 using namespace graphite2;
32
33 enum DirCode { // Hungarian: dirc
34 Unk = -1,
35 N = 0, // other neutrals (default) - ON
36 L = 1, // left-to-right, strong - L
37 R = 2, // right-to-left, strong - R
38 AL = 3, // Arabic letter, right-to-left, strong, AR
39 EN = 4, // European number, left-to-right, weak - EN
40 ES = 5, // European separator, left-to-right, weak - ES
41 ET = 6, // European number terminator,
left-to-right, weak - ET
42 AN = 7, // Arabic number, left-to-right, weak - AN
43 CS = 8, // Common number separator,
left-to-right, weak - CS
44 WS = 9, // white space, neutral - WS
45 BN = 10, // boundary neutral - BN
46
47 LRO = 11, // LTR override
48 RLO = 12, // RTL override
49 LRE = 13, // LTR embedding
50 RLE = 14, // RTL embedding
51 PDF = 15, // pop directional format
52 NSM = 16, // non-space mark
53
54 ON = N
55 };
I looked and grepped through the code, but I fail to see why ES is
turned into a number. Usually that's the case if there's a
#define ES …, but that's not the case here.
-------
I got it! Here's a minimal example:
// file.cpp
#include <cstdlib>
int main(){ return ES;}
g++ file.cpp
./a.out
echo $?
2
ES is defined in /usr/include/sys/regset.h with the following
comment:
* The names and offsets defined here should be specified by the
* AMD64 ABI suppl.
I have no clue why Solaris defines these registers. Linux and other
BSDs do not. It seems like this should be fixed upstream.
Mojca
More information about the tlbuild
mailing list