Package: gcc-mingw-w64-x86-64
Version: 4.9.1-19+14.3
Severity: normal

Dear Maintainer,

the gcc and g++ cross compilers (both i686-w64-mingw32-gcc and
x86_64-w64-mingw32-gcc) handle __attribute__((packed)) wrong.

Source code example:

#include <stdio.h>

struct S
{
  bool _b;
  unsigned _u;
} __attribute__((packed)) ;

int main(int argc, char **argv)
{
  printf("sizeof(S)=%d\n", sizeof(S)); 
  return 0;
}

Compile and run:

g++ -o packed packed.cpp && ./packed
sizeof(S)=5

x86_64-w64-mingw32-g++ -o packed.exe  packed.cpp  && wine packed.exe
sizeof(S)=8

wheezy cross-compiled .exe binaries also report 5.


By the way:
/usr/lib/gcc/i686-w64-mingw32/4.9-posix/libstdc++-6.dll
/usr/lib/gcc/i686-w64-mingw32/4.9-win32/libstdc++-6.dll
/usr/lib/gcc/x86_64-w64-mingw32/4.9-posix/libstdc++-6.dll
/usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/libstdc++-6.dll

should be chmod +x, since samba is now configured by default to
refuse exec permission of files without x permission,
resulting in confisuing error during exe start.


-- System Information:
Debian Release: 8.1
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/6 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages gcc-mingw-w64-x86-64 depends on:
ii  binutils-mingw-w64-x86-64  2.25-5+5.2
ii  gcc-mingw-w64-base         4.9.1-19+14.3
ii  libc6                      2.19-18
ii  libcloog-isl4              0.18.2-1+b2
ii  libgmp10                   2:6.0.0+dfsg-6
ii  libisl10                   0.12.2-2
ii  libmpc3                    1.0.2-1
ii  libmpfr4                   3.1.2-2
ii  mingw-w64-x86-64-dev       3.2.0-2
ii  zlib1g                     1:1.2.8.dfsg-2+b1

gcc-mingw-w64-x86-64 recommends no packages.

Versions of packages gcc-mingw-w64-x86-64 suggests:
pn  gcc-4.9-locales  <none>

-- no debconf information

Reply via email to