Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Apr 2013 22:31:36 -0700
From:      Jan Beich <jbeich@tormail.org>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>, "O. Hartmann" <ohartman@zedat.fu-berlin.de>, FreeBSD ports <freebsd-ports@freebsd.org>
Subject:   Re: CURRENT (r249438): (devel/libiconv)./unistd.h:686:5: error: invalid token at start of a preprocessor expression : #if @GNULIB_EUIDACCESS@
Message-ID:  <1USKxR-00025i-Tt@internal.tormail.org>
References:  <1365877246.2093.20.camel@thor.walstatt.dyndns.org> <1URs5b-000B9U-A2@internal.tormail.org> <E15F2208-0A57-4C40-B7B0-FEA7953500AD@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Dimitry Andric <dim@FreeBSD.org> writes:

> On Apr 16, 2013, at 00:42, Jan Beich <jbeich@tormail.org> wrote:
>
>> "O. Hartmann" <ohartman@zedat.fu-berlin.de> writes:
>>> ./unistd.h:694:5: error: invalid token at start of a preprocessor
>>> expression
>>> #if @GNULIB_EUIDACCESS@
>>>    ^
>>> 1 error generated.
>> 
>> Maybe -O3 overoptimizes regex in libc e.g.,
>> 
>> $ echo '#if @GNULIB_EUIDACCESS@' | sed 's/@GNULIB_EUIDACCESS@/0/'
>> #if @GNULIB_EUIDACCESS@
>> 
>> $ echo 'aaaaaaaaaaaaaaaaxxxaaaa' | sed 's/aaaaaaaaaaaaxxxaaaa//'
>> aaaaaaaaaaaaaaaaxxxaaaa
>
> How did you arrive at this result?

1/ chroot into poudriere jail for /head amd64
2/ echo CFLAGS+=-O3 >> /etc/make.conf
3/ make -j2 (in /usr/src/lib/libc)
4/ prepend LD_LIBRARY_PATH=. before sed(1)
5/ rebuild regcomp.o, regcomp.So with -O2 to confirm

> I have recompiled both libc and sed
> with -O3, but it works just fine here.

> Maybe -march=native is the clue, so which kind of CPU do you have?

sse2 is available on amd64 even without -march=. But I can't reproduce
the issue on i386 even with -march=native.

> To see what CPU llvm detects, try:
>
>   tblgen -version | grep CPU

  Host CPU: penryn

>
> Note that -O3 turns on clang's vectorizer, so you might have run into an
> optimizer bug, or some kind of undefined behavior which now falls over.

My luck is poor even with -O2 e.g., firefox20 crash on stackoverflow.com

[New LWP 101222]
[New Thread 801b02400 (LWP 101222)]
[New Thread 81060e800 (LWP 101372 StreamTrans #1)]
[New Thread 810ee8800 (LWP 101373 DOM Worker)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 801b02400 (LWP 101222)]
PodCopy<JS::Value> (dst=<optimized out>, nelem=<optimized out>,
    src=<optimized out>, dst=<optimized out>, src=<optimized out>,
    nelem=<optimized out>) at ../../../js/src/jsutil.h:238
238                 PodAssign(dst, src);
(gdb) bt
#0  PodCopy<JS::Value> (dst=<optimized out>, nelem=<optimized out>,
    src=<optimized out>, dst=<optimized out>, src=<optimized out>,
    nelem=<optimized out>) at ../../../js/src/jsutil.h:238
#1  getCallFrame (cx=<optimized out>, flags=<optimized out>, fun=<optimized out>,
    report=(unknown: 2266652928), this=<optimized out>, args=..., script=...)
    at ../../../js/src/vm/Stack-inl.h:454
#2  getFixupFrame (cx=<optimized out>, initial=<optimized out>,
    fun=<optimized out>, ncode=<optimized out>, dummy=0, report=<optimized out>,
    this=<optimized out>, cx=<optimized out>, report=<optimized out>, args=...,
    fun=<optimized out>, script=..., ncode=<optimized out>,
    initial=<optimized out>, stackLimit=<optimized out>)
    at ../../../js/src/vm/Stack-inl.h:513
#3  js::mjit::stubs::FixupArity (f=..., nactual=4294945312)
    at /wrkdirs/usr/ports/www/firefox/work/mozilla-release/js/src/methodjit/InvokeHelpers.cpp:213
#4  0x00000008019c48c2 in ?? ()
#5  0x00000008019b56b8 in ?? ()
#6  0x0000000000000001 in ?? ()
#7  0x0000000000000000 in ?? ()

>
> -Dimitry



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1USKxR-00025i-Tt>