Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jan 2017 08:01:59 +0000
From:      bugzilla-noreply@freebsd.org
To:        office@FreeBSD.org
Subject:   [Bug 216206] editors/openoffice-4 and editors/openoffice-devel: fails to build with clang 4.0
Message-ID:  <bug-216206-25061-BbnYTTKsmK@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-216206-25061@https.bugs.freebsd.org/bugzilla/>
References:  <bug-216206-25061@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D216206

--- Comment #19 from Don Lewis <truckman@FreeBSD.org> ---
(In reply to Pedro F. Giffuni from comment #18)

Disabling SSE just hides the problem, one of these unaligned pointers could=
 be
passed to code that doesn't have SSE disabled.

I dug into rtl_cache_alloc() and friends and discovered these use mmap()
instead of calling malloc().  Their interfaces are very unlike malloc(), so
replacing them with system malloc() would be difficult.  I did hack on the
implementation to try to get them to do the proper alignment.

Using system malloc() I'm still seeing idlc core dump in the offapi module
build.  This is a case where new has been overridden to call allocate(), wh=
ich
calls rtl_allocateMemory(), which calls malloc().  The problem is that it
appears to be calling the malloc() implementation built into rtld instead of
the libc implemenation.

reakpoint 1 (malloc) pending.
(gdb) run @/tmp/r
Starting program:
/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solver/420/=
unxfbsdx.pro/bin/idlc
@/tmp/r
[New LWP 101741]
Breakpoint 2 at 0x8006a5f01: file
/var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c, line =
163.
Pending breakpoint "malloc" resolved
Trace 67695/1: "Min Prioriy for policy '2' =3D=3D '0'
"
Trace 67695/1: "Max Prioriy for policy '2' =3D=3D '103'
"
/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solver/420/=
unxfbsdx.pro/bin/idlc:
compiling 1 source files ...=20
Compiling:
/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/offapi/com/=
sun/star/i18n/KParseTokens.idl
[New Thread 802616000 (LWP 101741/idlc)]
[Switching to Thread 802616000 (LWP 101741/idlc)]

Breakpoint 2, malloc (nbytes=3D343)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.=
c:
No such file or directory.
        in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
Current language:  auto; currently minimal
(gdb) cont
Continuing.

Breakpoint 2, malloc (nbytes=3D32)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
(gdb) cont
Continuing.
Trace 67962/2: "ChildStatusProc : starting
'/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solver/420=
/unxfbsdx.pro/bin/ucpp'"
[New Thread 802616500 (LWP 100242/idlc)]
[Switching to Thread 802616500 (LWP 100242/idlc)]

Breakpoint 2, malloc (nbytes=3D19)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
(gdb) cont
Continuing.

Breakpoint 2, malloc (nbytes=3D34)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
(gdb) cont
Continuing.

Breakpoint 2, malloc (nbytes=3D16)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
(gdb) cont
Continuing.

Breakpoint 2, malloc (nbytes=3D16)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
(gdb) cont
Continuing.

Breakpoint 2, malloc (nbytes=3D16)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
(gdb) cont
Continuing.

Breakpoint 2, malloc (nbytes=3D16)
    at /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/malloc.c=
:163
163     in /var/poudriere/jails/clang400amd64/usr/src/libexec/rtld-elf/mall=
oc.c
(gdb) cont
Continuing.
sizeof(AstExprValue)=3D16

Program received signal SIGBUS, Bus error.
[Switching to Thread 802616000 (LWP 101741/idlc)]
0x0000000000478cc2 in AstExpression::eval_bit_op (this=3D0x802633dc8,=20
    ek=3DEK_const) at astexpression.cxx:1001
1001        std::auto_ptr< AstExprValue > retval(new AstExprValue());

This is occurring even though idlc is linked to libc.so:

LD_LIBRARY_PATH=3D/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.=
0/main/solver/420/unxfbsdx.pro/lib
ldd solver/420/unxfbsdx.pro/bin/idlc
solver/420/unxfbsdx.pro/bin/idlc:
        libreg.so.3 =3D>
/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solver/420/=
unxfbsdx.pro/lib/libreg.so.3
(0x8008b9000)
        libuno_sal.so.3 =3D>
/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solver/420/=
unxfbsdx.pro/lib/libuno_sal.so.3
(0x800c00000)
        libuno_salhelpergcc3.so.3 =3D>
/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solver/420/=
unxfbsdx.pro/lib/libuno_salhelpergcc3.so.3
(0x801040000)
        libm.so.5 =3D> /lib/libm.so.5 (0x801244000)
        libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x80146e000)
        libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x801735000)
        libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x801953000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x801b69000)
        libc.so.7 =3D> /lib/libc.so.7 (0x801d91000)
        libstore.so.3 =3D>
/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/solver/420/=
unxfbsdx.pro/lib/libstore.so.3
(0x802152000)

I'm unable to reproduce this oddity with a simple test program.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-216206-25061-BbnYTTKsmK>