Bug#845171: wine-development: FTBFS: ld aborts or segfaults

2016-11-20 Thread Jens Reyer
Source: wine-development
Version: 1.9.22-1
Justification: FTBFS on i386, armel and armhf
Severity: serious
Tags: help


wine-development 1.9.22-1 (in stretch) built successfully on all
architectures when it was uploaded to unstable, but fails to
build in a stretch environment on i386 now (amd64 is still fine).
Exactly the same for 1.9.23-1 on i386 in a sid environment:

gcc -m32 -o wineserver async.o atom.o change.o class.o clipboard.o completion.o 
console.o debugger.o device.o \
  directory.o event.o fd.o file.o handle.o hook.o mach.o mailslot.o main.o 
mapping.o mutex.o \
  named_pipe.o object.o process.o procfs.o ptrace.o queue.o region.o registry.o 
request.o \
  semaphore.o serial.o signal.o snapshot.o sock.o symlink.o thread.o timer.o 
token.o trace.o \
  unicode.o user.o window.o winstation.o -Wl,--rpath,\$ORIGIN/../libs/wine \
  ../libs/port/libwine_port.a -lwine -L../libs/wine 
-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now 
-Wl,-rpath,/usr/lib/i386-linux-gnu/wine-development
collect2: fatal error: ld terminated with signal 6 [Aborted]
compilation terminated.
ld: malloc.c:2403: sysmalloc: Assertion `(old_top == initial_top (av) && 
old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse 
(old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.
Makefile:732: recipe for target 'wineserver' failed
make[2]: *** [wineserver] Error 1
make[2]: Leaving directory '/build/wine-development-1.9.22/server'
Makefile:19180: recipe for target 'server' failed
make[1]: *** [server] Error 2
make[1]: *** Waiting for unfinished jobs
[...]
dh_auto_build: make -j4 returned exit code 2
debian/rules:100: recipe for target 'build-arch' failed
make: *** [build-arch] Error 2
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2



Further a local rebui1d of .9.22-1 failed on i386 on
2016-11-05[1], but succeeded again on 2016-11-07.

1.9.23-1 didn't build on armel[2], armhf[3] and kfreebsd-i386[4]
when it was uploaded to unstable, and failed on debomatic today
(the error message changed though).

These other failures are not exactly identical, but also happen
in ld. I assume they are all related.

I'm at a loss here what the reason for the failures is. I assume
it's somehow related to build-dependencies being rebuilt with pie
and bindnow and/or something in binutils (I found a similar recent
bugreport (#844847, xorp: FTBFS: collect2: fatal error: ld
terminated with signal 6 [Aborted]) which was reassigned to
binutils.)

However wine 1.8.5-1 still builds fine (wine and wine-development
are nearly identical, only the upstream version differs). If my
assumption was true, I'd expect wine to fail, too. Maybe it will
do so soon.

So what to do now?

I hope someone can help here.

If wine(-development) gets removed from the archive we need a fix
uploaded by December 25th to get it in Stretch (or find a solution
with the release team).

Greets
jre




[1] 1.9.22-1:i386, local rebuild on 2016-11-05
gcc -m32 -o wine-installed main.o \
  -Wl,--rpath,\$ORIGIN/`../tools/makedep -R /usr/lib/wine-development 
/usr/lib/i386-linux-gnu/wine-development` -Wl,--enable-new-dtags \
  -Wl,--export-dynamic -Wl,-Ttext-segment=0x7c00 
-Wl,-z,max-page-size=0x1000 -lwine -lpthread \
  ../libs/port/libwine_port.a -L../libs/wine -Wl,-z,relro -Wl,-z,now 
-Wl,-rpath,/usr/lib/i386-linux-gnu/wine-development
*** Error in `/usr/bin/ld': free(): invalid next size (fast): 0x57050ae0 ***
=== Backtrace: =
/lib/i386-linux-gnu/libc.so.6(+0x6733a)[0xf74ec33a]
/lib/i386-linux-gnu/libc.so.6(+0x6df77)[0xf74f2f77]
/lib/i386-linux-gnu/libc.so.6(+0x6e736)[0xf74f3736]
/usr/lib/i386-linux-gnu/libbfd-2.27.51-system.20161102.so(objalloc_free+0x3d)[0xf774011d]
/usr/lib/i386-linux-gnu/libbfd-2.27.51-system.20161102.so(bfd_hash_table_free+0x1c)[0xf76858ec]
/usr/lib/i386-linux-gnu/libbfd-2.27.51-system.20161102.so(+0x30568)[0xf768c568]
/usr/lib/i386-linux-gnu/libbfd-2.27.51-system.20161102.so(bfd_fopen+0x1c3)[0xf768ce13]
/usr/lib/i386-linux-gnu/libbfd-2.27.51-system.20161102.so(bfd_openr+0x25)[0xf768ce65]
/usr/bin/ld(+0x29d69)[0x5659cd69]
/usr/bin/ld(+0x2a385)[0x5659d385]
/usr/bin/ld(+0x2b1bf)[0x5659e1bf]
/usr/bin/ld(+0x1a2e6)[0x5658d2e6]
/usr/bin/ld(main+0x61f)[0x5657a3df]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf6)[0xf749d276]
/usr/bin/ld(+0x7aeb)[0x5657aaeb]
=== Memory map: 
56573000-566ad000 r-xp  08:06 10898403   
/usr/bin/i686-linux-gnu-ld.bfd
566ad000-566b1000 r--p 00139000 08:06 10898403   
/usr/bin/i686-linux-gnu-ld.bfd
566b1000-566b3000 rw-p 0013d000 08:06 10898403   
/usr/bin/i686-linux-gnu-ld.bfd
566b3000-566b4000 rw-p  00:00 0 
56e65000-57088000 rw-p  00:00 0  [heap]
f730-f7321000 rw-p  00:00 0 
f7321000-f740 ---p  00:00 0 
f745-f746c000 r-xp  08:06 11026496   
/lib/i386-lin

Bug#845171: wine-development: FTBFS: ld aborts or segfaults

2016-11-21 Thread Jens Reyer
On 21.11.2016 22:07, Michael Gilbert wrote:
> On Sun, Nov 20, 2016 at 9:16 PM, Jens Reyer wrote:
>> wine-development 1.9.22-1 (in stretch) built successfully on all
>> architectures when it was uploaded to unstable, but fails to
>> build in a stretch environment on i386 now (amd64 is still fine).
>> Exactly the same for 1.9.23-1 on i386 in a sid environment:
> 
> Hi Jens,
> 
> 1.9.23-1 built for me ok in a sid i386 chroot.  Can you clarify the
> setup where it fails?  Did you mean kfreebsd-i386?

Hi Mike

first off, it just built fine on debomatic-i386:
http://debomatic-i386.debian.net/distribution#unstable/wine-development/1.9.23-1/buildlog

And if I understood you correctly it also built fine for you *today*?

So it seems i386 is a local problem, for whatever reasons. If the
upcoming 1.9.24 will still build on the official buildd and noone else
can reproduce this, I'd say the i386 issue may be ignored (especially
for the stretch release). I'll update the bug metadata then.

But of course I need to figure this out here anyway.


I built with git-buildpackage for i386 (not kfreebsd-i386), on my usual
amd64 stretch/sid machine.

The failures began while using my old chroot (minimal base-sid-i386.cow
with only wine build-deps installed). But I now created a new one and
deleted the ccache. It still fails with the same error message when I do
this:

$ DIST=sid ARCH=i386 git pbuilder create
$ DIST=sid ARCH=amd64 git pbuilder update --override-config
$ gbp buildpackage -B \
--git-pbuilder \
--git-arch=i386 \
--git-dist=sid \
--git-upstream-tag="wine-%(version)s"


Similarly 1.9.22-1 failed with a fresh minimal base-stretch-i386.cow,
and ccache deleted.

Both 1.9.22-1 and 1.9.23-1 built fine here with gbp in the past, but
fail now (with an updated chroot).



> A recent change to binutils adds -Wl,--enable-new-dtags by default.
> That may be the cause of the problem on arm.

Unfortunately no, see the buildlogs at
https://buildd.debian.org/status/package.php?p=wine-development:

1.9.23-1 failed to build on Nov 13 (armel), and Nov 14 (armhf).
The binutils change "ld: enable new dtags by default for linux/gnu
targets.  Closes: #835859." was only uploaded on Nov 17.

1.9.23-1 failed with binutils_2.27.51.20161108-1 (armel and armhf)
1.9.22-1 built  with binutils_2.27-9+b1 (armel and armhf)


> The i386 and arm failures are probably different issues.

Ok, I'll try to look into the arm problem separately then. If I don't
find a solution soon, I'll file a separate bug for that.

btw, debomatic-...debian.net works like a charm for testing this.

Greets
jre



Bug#845171: wine-development: FTBFS: ld aborts or segfaults

2016-11-23 Thread Matthias Klose
Control: tags -1 + help moreinfo

according to the logs, -Wl,--enable-new-dtags is already passed into the linker,
so I don't assume the defaults change in binutils is the root cause.

I'm unable to trigger the malloc error.  If you can, please run gcc with -v, and
then re-run the collect2/ld command and provide the object files and libraries
for the link.



Bug#845452: Bug#845171: wine-development: FTBFS: ld aborts or segfaults

2016-11-23 Thread Matthias Klose
On 23.11.2016 18:03, Jens Reyer wrote:
> Control: reassign 845171 winbind/2.27.51.20161118-2
> Control: affects 845171 wine-development
> Control: tags 845171 - help moreinfo
> Control: tags 845452 = patch
> 
> 
> [ Referencing the other related bug here. ]
> 
> Matthias Klose wrote in https://bugs.debian.org/844847#35
>> This looks like another regression with handling $ORIGIN in the
>> linker (-rpath=\$ORIGIN/<...>).  The work around for the packages
>> is to remove that option, you don't need to relocate the binaries
>> when shipped as a debian package.
> 
> Thanks a lot! I can confirm that wine-development builds again with
> attached patch, which removes the rpath $ORIGIN in configure.ac.
> 
> I'll test that a bit more and then commit for wine-development.
> 
> 
> Matthias Klose wrote in https://bugs.debian.org/844847#35
>> Cloning the bugs for the original packages ...
> 
> #845171 was still assigned to wine-development. Fixing metadata to what
> I think you wanted.

ta, and the fix will be in the next binutils upload too.



Bug#845452: Bug#845171: wine-development: FTBFS: ld aborts or segfaults

2016-11-23 Thread Jens Reyer
Control: reassign 845171 winbind/2.27.51.20161118-2
Control: affects 845171 wine-development
Control: tags 845171 - help moreinfo
Control: tags 845452 = patch


[ Referencing the other related bug here. ]

Matthias Klose wrote in https://bugs.debian.org/844847#35
> This looks like another regression with handling $ORIGIN in the
> linker (-rpath=\$ORIGIN/<...>).  The work around for the packages
> is to remove that option, you don't need to relocate the binaries
> when shipped as a debian package.

Thanks a lot! I can confirm that wine-development builds again with
attached patch, which removes the rpath $ORIGIN in configure.ac.

I'll test that a bit more and then commit for wine-development.


Matthias Klose wrote in https://bugs.debian.org/844847#35
> Cloning the bugs for the original packages ...

#845171 was still assigned to wine-development. Fixing metadata to what
I think you wanted.

Greets!
jre


--- a/configure.ac
+++ b/configure.ac
@@ -887,12 +887,12 @@ case $host_os in
   WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
   [LDEXECFLAGS="-Wl,--export-dynamic"])
 
-  WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
-  [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
-   LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"],
-  [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib],
-   [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
-LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])])
+  WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,./lib],
+  [LDRPATH_INSTALL="-Wl,--rpath,\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
+   LDRPATH_LOCAL="-Wl,--rpath,\$(top_builddir)/libs/wine"],
+  [WINE_TRY_CFLAGS([-fPIC -Wl,-R,./lib],
+   [LDRPATH_INSTALL="-Wl,-R,\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
+LDRPATH_LOCAL="-Wl,-R,\$(top_builddir)/libs/wine"])])
 
   WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
   [LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"])


Bug#845452: Bug#845171: wine-development: FTBFS: ld aborts or segfaults

2016-11-23 Thread Jens Reyer
On 23.11.2016 18:06, Matthias Klose wrote:
> ta, and the fix will be in the next binutils upload too.

Great, given your recent binutils upload rate I expect that to happen
soon. So I'll probably stay lazy and avoid changing wine-development.



Bug#845171: [pkg-wine-party] Bug#845171: wine-development: FTBFS: ld aborts or segfaults

2016-11-21 Thread Michael Gilbert
On Sun, Nov 20, 2016 at 9:16 PM, Jens Reyer wrote:
> wine-development 1.9.22-1 (in stretch) built successfully on all
> architectures when it was uploaded to unstable, but fails to
> build in a stretch environment on i386 now (amd64 is still fine).
> Exactly the same for 1.9.23-1 on i386 in a sid environment:

Hi Jens,

1.9.23-1 built for me ok in a sid i386 chroot.  Can you clarify the
setup where it fails?  Did you mean kfreebsd-i386?

A recent change to binutils adds -Wl,--enable-new-dtags by default.
That may be the cause of the problem on arm.

The i386 and arm failures are probably different issues.

Best wishes,
Mike