bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/19196] MinGW ld from msys2 crashes on Wine when linking Mi


From: fracting at gmail dot com
Subject: [Bug binutils/19196] MinGW ld from msys2 crashes on Wine when linking MinGW xz
Date: Sun, 01 Nov 2015 02:54:37 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=19196

--- Comment #1 from Qian Hong <fracting at gmail dot com> ---
Pre-request:

*important*: Install latest Wine Staging (1.7.53) on Linux. I'm using 32bit
Ubuntu 15.10 with Linux kernel 4.2.0-16-generic.

Wine Staging is an official part of Wine, installation steps refer to
https://github.com/wine-compholio/wine-staging/wiki/Installation

Steps to reproduce:

1. Install MSYS2 on Wine

1) *important*: MSYS2's installer works mostly out of box on Wine Staging
today, except a few workaround is needed:

$ export STAGING_WRITECOPY=1

2) download MSYS2 installer from https://msys2.github.io/
http://repo.msys2.org/distrib/i686/msys2-i686-20150916.exe

3) install on Wine:
$ mv ~/.wine ~/.wine.bak
$ wine msys2-i686-20150916.exe
The installer should work out of box just like on Windows.
Refer to http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/ for
additional introduction for usage of MSYS2 on Windows, it is the same for Wine.

4) install toolchain on MSYS2:

Start a MINGW32 shell:
$ cd ~/.wine/drive_c/msys32/
$ wine start mingw32_shell.bat

Inside the MINGW32 shell in mintty terminal:
$ pacman -S --noconfirm base-devel mingw-w64-i686-toolchain

This will install gcc / bintuils / make and other tools for compiling Win32
software. Refer to
http://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2/ for additional
information. 

Note that currently MSYS2 provides binary package for binutils 2.25.1, but I
can also reproduce the same ld crashing bug with latest binutils compiled by
myself.

2. Build MinGW xz package on MSYS2 (inside MINGW32 shell on Wine):

1) firstly clone MINGW packages PKGBUILD files:

$ git clone https://github.com/Alexpux/MINGW-packages.git
(If git is not installed, try `pacman -S git`)

2) cd to the directory of xz:
$ xd MINGW-packages/mingw-w64-xz

3) use makepkg-mingw to compile xz package:
$ makepkg-mingw -f -s --skippgpcheck --noconfirm

This will download the xz source code and build dependencies for xz then build
the xz package.
Refer to http://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2/ for
additional information. 

Expect result:
Build the xz package successfully.

Actual result:
ld crashes when linking lzmadec.exe (sorry, my #comment 1 is wrong, not
crashing for xzdec.exe, but for lzmadec.exe)
collect2 reports: collect2.exe: error: ld returned 5 exit status

Command line below:

 /bin/sh ../../libtool  --tag=CC   --mode=link i686-w64-mingw32-gcc -Wall
-Wextra -Wvla -Wformat=2 -Winit-self -Wmissing-include-dirs -Wstrict-aliasing
-Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast
-Wwrite-strings -Wlogical-op -Waggregate-return -Wstrict-prototypes
-Wold-style-definition -Wmissing-prototypes -Wmissing-declarations
-Wmissing-noreturn -Wredundant-decls -march=i686 -mtune=generic -O2 -pipe 
-pipe -o lzmadec.exe lzmadec-xzdec.o lzmadec-tuklib_progname.o
lzmadec-tuklib_exit.o lzmadec_w32res.o ../../src/liblzma/liblzma.la 
-L/mingw32/lib -lintl
libtool: link: i686-w64-mingw32-gcc -Wall -Wextra -Wvla -Wformat=2 -Winit-self
-Wmissing-include-dirs -Wstrict-aliasing -Wfloat-equal -Wundef -Wshadow
-Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wlogical-op
-Waggregate-return -Wstrict-prototypes -Wold-style-definition
-Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn
-Wredundant-decls -march=i686 -mtune=generic -O2 -pipe -pipe -o
.libs/lzmadec.exe lzmadec-xzdec.o lzmadec-tuklib_progname.o
lzmadec-tuklib_exit.o lzmadec_w32res.o  ../../src/liblzma/.libs/liblzma.dll.a
-L/mingw32/lib -lintl -L/mingw32/lib


Backtrace below: (note I'm not sure I can reproduce this bug with debugging
build of binutils, but I'll try harder again)

Unhandled exception: page fault on read access to 0x013e0038 in 32-bit code
(0xb744af83).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
 EIP:b744af83 ESP:0122f8d8 EBP:0122f928 EFLAGS:00010287(  R- --  I S - -P-C)
 EAX:013df649 EBX:b74d8000 ECX:000009ff EDX:00273129
 ESI:0122f940 EDI:00000000
Stack dump:
0x0122f8d8:  7fb0a000 7fa9339c 00273129 013df649
0x0122f8e8:  000009ff 7fa932d9 7fb0a000 000009ff
0x0122f8f8:  00000001 7fa8c6b3 000009ff 7fb0a000
0x0122f908:  0122f958 7fa8c6b3 00000023 7fb0a000
0x0122f918:  0122f958 0122f940 7fb0a000 0122f990
0x0122f928:  0122f978 7fa9329f 0000002c 00251518
Backtrace:
=>0 0xb744af83 (0x0122f928)
  1 0x7fa9329f MSVCRT_fwrite+0x3d(ptr=<couldn't compute location>,
size=<couldn't compute location>, nmemb=<couldn't compute location>,
file=<couldn't compute location>)
[/home/fracting/src/wine-patched-auto/dlls/msvcrt/file.c:3885] in msvcrt
(0x0122f978)
  2 0x0042d6c0 in ld (+0x2d6bf) (0x7fb12660)
  3 0x0042cc2f in ld (+0x2cc2e) (0x00251518)
  4 0x00456354 in ld (+0x56353) (0x00251518)
  5 0x00435f95 in ld (+0x35f94) (0x00000000)
  6 0x00450413 in ld (+0x50412) (0x00000001)
  7 0x00454b3d in ld (+0x54b3c) (0x00000000)
  8 0x00415363 in ld (+0x15362) (0x0122fd38)
  9 0x004dea26 in ld (+0xdea25) (0x0122fd38)
  10 0x004013e2 in ld (+0x13e1) (0x0122fe00)
  11 0x7b869694 call_process_entry+0xb() in kernel32 (0x0122fe18)

--- Comment #2 from Qian Hong <fracting at gmail dot com> ---
Pre-request:

*important*: Install latest Wine Staging (1.7.53) on Linux. I'm using 32bit
Ubuntu 15.10 with Linux kernel 4.2.0-16-generic.

Wine Staging is an official part of Wine, installation steps refer to
https://github.com/wine-compholio/wine-staging/wiki/Installation

Steps to reproduce:

1. Install MSYS2 on Wine

1) *important*: MSYS2's installer works mostly out of box on Wine Staging
today, except a few workaround is needed:

$ export STAGING_WRITECOPY=1

2) download MSYS2 installer from https://msys2.github.io/
http://repo.msys2.org/distrib/i686/msys2-i686-20150916.exe

3) install on Wine:
$ mv ~/.wine ~/.wine.bak
$ wine msys2-i686-20150916.exe
The installer should work out of box just like on Windows.
Refer to http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/ for
additional introduction for usage of MSYS2 on Windows, it is the same for Wine.

4) install toolchain on MSYS2:

Start a MINGW32 shell:
$ cd ~/.wine/drive_c/msys32/
$ wine start mingw32_shell.bat

Inside the MINGW32 shell in mintty terminal:
$ pacman -S --noconfirm base-devel mingw-w64-i686-toolchain

This will install gcc / bintuils / make and other tools for compiling Win32
software. Refer to
http://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2/ for additional
information. 

Note that currently MSYS2 provides binary package for binutils 2.25.1, but I
can also reproduce the same ld crashing bug with latest binutils compiled by
myself.

2. Build MinGW xz package on MSYS2 (inside MINGW32 shell on Wine):

1) firstly clone MINGW packages PKGBUILD files:

$ git clone https://github.com/Alexpux/MINGW-packages.git
(If git is not installed, try `pacman -S git`)

2) cd to the directory of xz:
$ xd MINGW-packages/mingw-w64-xz

3) use makepkg-mingw to compile xz package:
$ makepkg-mingw -f -s --skippgpcheck --noconfirm

This will download the xz source code and build dependencies for xz then build
the xz package.
Refer to http://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2/ for
additional information. 

Expect result:
Build the xz package successfully.

Actual result:
ld crashes when linking lzmadec.exe (sorry, my #comment 1 is wrong, not
crashing for xzdec.exe, but for lzmadec.exe)
collect2 reports: collect2.exe: error: ld returned 5 exit status

Command line below:

 /bin/sh ../../libtool  --tag=CC   --mode=link i686-w64-mingw32-gcc -Wall
-Wextra -Wvla -Wformat=2 -Winit-self -Wmissing-include-dirs -Wstrict-aliasing
-Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast
-Wwrite-strings -Wlogical-op -Waggregate-return -Wstrict-prototypes
-Wold-style-definition -Wmissing-prototypes -Wmissing-declarations
-Wmissing-noreturn -Wredundant-decls -march=i686 -mtune=generic -O2 -pipe 
-pipe -o lzmadec.exe lzmadec-xzdec.o lzmadec-tuklib_progname.o
lzmadec-tuklib_exit.o lzmadec_w32res.o ../../src/liblzma/liblzma.la 
-L/mingw32/lib -lintl
libtool: link: i686-w64-mingw32-gcc -Wall -Wextra -Wvla -Wformat=2 -Winit-self
-Wmissing-include-dirs -Wstrict-aliasing -Wfloat-equal -Wundef -Wshadow
-Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wlogical-op
-Waggregate-return -Wstrict-prototypes -Wold-style-definition
-Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn
-Wredundant-decls -march=i686 -mtune=generic -O2 -pipe -pipe -o
.libs/lzmadec.exe lzmadec-xzdec.o lzmadec-tuklib_progname.o
lzmadec-tuklib_exit.o lzmadec_w32res.o  ../../src/liblzma/.libs/liblzma.dll.a
-L/mingw32/lib -lintl -L/mingw32/lib


Backtrace below: (note I'm not sure I can reproduce this bug with debugging
build of binutils, but I'll try harder again)

Unhandled exception: page fault on read access to 0x013e0038 in 32-bit code
(0xb744af83).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
 EIP:b744af83 ESP:0122f8d8 EBP:0122f928 EFLAGS:00010287(  R- --  I S - -P-C)
 EAX:013df649 EBX:b74d8000 ECX:000009ff EDX:00273129
 ESI:0122f940 EDI:00000000
Stack dump:
0x0122f8d8:  7fb0a000 7fa9339c 00273129 013df649
0x0122f8e8:  000009ff 7fa932d9 7fb0a000 000009ff
0x0122f8f8:  00000001 7fa8c6b3 000009ff 7fb0a000
0x0122f908:  0122f958 7fa8c6b3 00000023 7fb0a000
0x0122f918:  0122f958 0122f940 7fb0a000 0122f990
0x0122f928:  0122f978 7fa9329f 0000002c 00251518
Backtrace:
=>0 0xb744af83 (0x0122f928)
  1 0x7fa9329f MSVCRT_fwrite+0x3d(ptr=<couldn't compute location>,
size=<couldn't compute location>, nmemb=<couldn't compute location>,
file=<couldn't compute location>)
[/home/fracting/src/wine-patched-auto/dlls/msvcrt/file.c:3885] in msvcrt
(0x0122f978)
  2 0x0042d6c0 in ld (+0x2d6bf) (0x7fb12660)
  3 0x0042cc2f in ld (+0x2cc2e) (0x00251518)
  4 0x00456354 in ld (+0x56353) (0x00251518)
  5 0x00435f95 in ld (+0x35f94) (0x00000000)
  6 0x00450413 in ld (+0x50412) (0x00000001)
  7 0x00454b3d in ld (+0x54b3c) (0x00000000)
  8 0x00415363 in ld (+0x15362) (0x0122fd38)
  9 0x004dea26 in ld (+0xdea25) (0x0122fd38)
  10 0x004013e2 in ld (+0x13e1) (0x0122fe00)
  11 0x7b869694 call_process_entry+0xb() in kernel32 (0x0122fe18)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]