[Bug 49191] New: armv7l build broken: dlls/ntdll expression too complex

WineHQ Bugzilla wine-bugs at winehq.org
Mon May 18 04:50:19 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49191

            Bug ID: 49191
           Summary: armv7l build broken: dlls/ntdll expression too complex
           Product: Wine
           Version: 5.6
          Hardware: x86
                OS: Linux
            Status: NEW
          Keywords: download, regression, source
          Severity: normal
          Priority: P2
         Component: ntdll
          Assignee: wine-bugs at winehq.org
          Reporter: austinenglish at gmail.com
   Regression SHA1: 39e4b788d6ca7d1e1ad045059ec7d088fde8a0db
      Distribution: Debian

gcc -c -o large_int.o large_int.c -I. -I../../include -D__WINESRC__
-D_NTSYSTEM_ -D_REENTRANT -fPIC -Wall \
  -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing
-Wdeclaration-after-statement \
  -Wempty-body -Wignored-qualifiers -Wno-packed-not-aligned -Wshift-overflow=2
-Wstrict-prototypes \
  -Wtype-limits -Wunused-but-set-parameter -Wvla -Wwrite-strings
-Wpointer-arith -Wlogical-op \
  -gdwarf-2 -gstrict-dwarf -g -O2 -marm -mfloat-abi=hard
{standard input}: Assembler messages:
{standard input}:23: Error: expression too complex -- `push %ebx'
{standard input}:25: Error: bad register expression
{standard input}:26: Error: expression too complex -- `push %esi'
{standard input}:28: Error: bad register expression
{standard input}:29: Error: bad instruction `movl 12(%esp),%esi'
{standard input}:30: Error: bad instruction `movl 16(%esp),%ebx'
{standard input}:31: Error: bad instruction `movl 20(%esp),%ecx'
{standard input}:32: Error: bad instruction `movl 24(%esp),%eax'
{standard input}:33: Error: bad instruction `movl 28(%esp),%edx'
{standard input}:34: Error: bad instruction `lock'
{standard input}:34: Error: bad instruction `cmpxchg8b (%esi)'
{standard input}:35: Error: expression too complex -- `pop %esi'
{standard input}:36: Error: bad register expression
{standard input}:38: Error: expression too complex -- `pop %ebx'
{standard input}:39: Error: bad register expression
{standard input}:41: Error: bad instruction `ret $20'
make: *** [Makefile:432: large_int.o] Error 1

pi at raspberrypi:~/wine-git/dlls/ntdll $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/8/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 8.3.0-6+rpi1'
--with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr
--with-gcc-major-version-only --program-suffix=-8
--program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm
--disable-libquadmath --disable-libquadmath-support --enable-plugin
--with-system-zlib --with-target-system-zlib --enable-objc-gc=auto
--enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp
--with-float=hard --disable-werror --enable-checking=release
--build=arm-linux-gnueabihf --host=arm-linux-gnueabihf
--target=arm-linux-gnueabihf
Thread model: posix
gcc version 8.3.0 (Raspbian 8.3.0-6+rpi1) 

pi at raspberrypi:~/wine-git/dlls/ntdll $ as -v
GNU assembler version 2.31.1 (arm-linux-gnueabihf) using BFD version (GNU
Binutils for Raspbian) 2.31.1

pi at raspberrypi:~/wine-git/dlls/ntdll $ ld -v
GNU ld (GNU Binutils for Raspbian) 2.31.1

39e4b788d6ca7d1e1ad045059ec7d088fde8a0db is the first bad commit
commit 39e4b788d6ca7d1e1ad045059ec7d088fde8a0db
Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat May 2 15:10:04 2020 +0200

    ntdll: Use the standard Interlocked* functions.

    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

there's a similar regression in dlls/mf (and probably elsewhere):
/usr/bin/ld: topology.o: in function `topology_generate_id':
/home/pi/wine-bisect/dlls/mf/topology.c:871: undefined reference to
`InterlockedCompareExchange64'                                                  
/usr/bin/ld: mf.dll.so: hidden symbol `InterlockedCompareExchange64' isn't
defined
/usr/bin/ld: final link failed: bad value

didn't bisect it yet, but I suspect commit
5d5b6a1f35c6fee51dcef60818028061f03ce0ce.

interestingly, my other armv7l machine (PrawnOS), doesn't show this, with same
gcc/ld versions (didn't compare flags closely though).

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list