Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Apr 2013 06:35:37 -0600
From:      Jan Beich <jbeich@tormail.org>
To:        Craig Rodrigues <rodrigc@FreeBSD.org>
Cc:        gecko@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: firefox 19.0,2 crashing under FreeBSD 8
Message-ID:  <1UOEFz-000BOP-Ky@internal.tormail.org>
References:  <CAG=rPVdS95sKvgYdsm1drLYd-h7Byw=8GPH%2BWWVTcNnBsjkrAA@mail.gmail.com> <1UNsb3-000IEE-LH@internal.tormail.org> <CAG=rPVdA=c4sr5aD2EzOjEuZ_9_-WLdP3m=2UG2QLhPv5VkuWg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Craig Rodrigues <rodrigc@FreeBSD.org> writes:

> On Thu, Apr 4, 2013 at 3:24 PM, Jan Beich <jbeich@tormail.org> wrote:
>
>> Craig Rodrigues <rodrigc@FreeBSD.org> writes:
>>
>> > Stacktrace 2:
>> >
>> > (gdb) where
>> > #0  0x282e95f2 in flockfile () from /lib/libc.so.7
>> > #1  0x282defb0 in vfprintf () from /lib/libc.so.7
>> > #2  0x282cfd3e in fprintf () from /lib/libc.so.7
>> > #3  0x282ec43a in .cerror () from /lib/libc.so.7
>> > #4  0x283289a8 in __JCR_LIST__ () from /usr/local/lib/libffi.so.6
>> > #5  0x28326fb7 in ffi_call_SYSV () from /usr/local/lib/libffi.so.6
>> > #6  0x28326dee in ffi_call () from /usr/local/lib/libffi.so.6
>> > #7  0x2a37c3dd in JS_SetCTypesCallbacks ()
>> >    from /usr/local/lib/firefox/libxul.so
>> > #8  0x333e1740 in ?? ()
>> > #9  0x338b0ed4 in issetugid () from /usr/local/lib/compat/libc.so.6
>>
>> Can you show what's linked against libc.so.6 from misc/compat6x ?
>> For example,
>>
>>   $ ldd -a /usr/local/lib/firefox/libxul.so
>>
>
>
> Take a look at:
>
> http://people.freebsd.org/~rodrigc/qqq.txt.bz2
>
> I don't see libc.so.6 anywhere in there, so I don't know how it could have
> gotten into the
> stack trace, unless the stack trace is mangled due to stack corruption.

Try moving /usr/local/lib/compat away and start firefox. If not a system
library you can get libc.so.6 via dlopen() or LD_PRELOAD. Building with
DEBUG option for a more complete stacktrace may help. Note, libxul.so
linking with debug symbols takes *a lot* more memory than non-debug.

Alternatively, bisect your environment by using a known working binary[1]
or a known working build configuration (e.g. poudriere or tinderbox).

[1] ask someone to upload or use an official package e.g.,
    ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.4-release/www/firefox-20.0,1.tbz

>>
>> > I saw in this thread:
>> >
>> >
>> http://lists.freebsd.org/pipermail/freebsd-ports/2013-February/081567.html
>> >
>> > That patching clang helped fix some stack issues with Firefox.
>> >
>> > Is this solution applicable to FreeBSD 8?

It *was* only applicable for i386 and with lang/clang installed,
regardless of version if PATH had /usr/local/bin before /usr/bin.

>> > On FreeBSD 8, the firefox port is built with g++46, not clang.
>>
>> At this time only base clang is considered but during firefox 19
>> lang/clang* could be picked up by default.

Er, lang/gcc by default is a fallback and only used for 8.x and non-x86
without /usr/bin/clang.

>
> In ports/www/firefox/Makefile, there is this:
>
> .if ${PORT_OPTIONS:MPGO}
> USE_GCC?=       yes
> USE_DISPLAY=            yes

A lot of shared stuff is in ports/Mk/bsd.gecko.mk:

  .if ${MOZILLA_VER:R:R} >= 19 || ${MOZILLA:Mseamonkey*}
  # prefer base clang, for lang/clang{,-devel} see ports/177224
  . if ${CC} == "cc" && (exists(/usr/bin/clang) && ${OSVERSION} >= 900014)
  CC=				/usr/bin/clang
  . endif
  . if ${CXX} == "c++" && (exists(/usr/bin/clang++) && ${OSVERSION} >= 900014)
  CXX=			/usr/bin/clang++
  . endif
  . if ${CPP} == "cpp" && (exists(/usr/bin/clang-cpp) && ${OSVERSION} >= 900045)
  CPP=			/usr/bin/clang-cpp
  . endif
  . if ${CC} != "cc" && ${CPP} == "cpp"
  CPP=			${CC} -E
  . endif
  # fallback to gcc otherwise
  . if ${CC} == "cc" || ${CXX} == "c++"
  USE_GCC?=		yes
  . endif
  .endif

--
with firefox 20 out firefox 19.* is not supported anymore



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1UOEFz-000BOP-Ky>