[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