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

Bug#800146: marked as done (Can't load x32 binaries on amd64 system)



Your message dated Sun, 27 Sep 2015 13:43:14 +0200
with message-id <20150927114314.GA15104@eldamar.local>
and subject line Re: Bug#800146: Can't load x32 binaries on amd64 system
has caused the Debian Bug report #800146,
regarding Can't load x32 binaries on amd64 system
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
800146: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800146
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: linux-image-3.16.0-4-amd64
Version: 3.16.7-ckt11-1+deb8u3
Severity: normal

Dear Maintainer,
I am able to run i386 and i686 binaries on my amd64 system, but not x32.


Steps to reproduce:

# apt-get install libc6-dev-x32
...

$ gcc -Os -mx32 -o /tmp/csv2tsv /usr/local/src/csv2tsv.c 
$ ldd /tmp/csv2tsv
        not a dynamic executable
$ /tmp/csv2tsv
bash: /tmp/csv2tsv: cannot execute binary file: Exec format error

$ /libx32/ld-2.19.so 
bash: /libx32/ld-2.19.so: cannot execute binary file: Exec format error


I expected that I would be able to run x32 binaries with libc6-dev-x32
and libc6-x32 installed on an amd64 system, but as the loader won't load
this it is not going to work.

It looks like the kernel config prevents x32 binaries from loading.

This limitation breaks libc6-dev-x32 and libc6-x32 packages. However,
I can still run generic Pentium4
"-m32 -march=pentium4 -mtune=generic -msse3 -mfpmath=sse"
builds on amd64.

Is this related to CVE-2014-0038 ?

/boot/config-3.16.0-4-amd64
#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
CONFIG_IA32_EMULATION=y
CONFIG_IA32_AOUT=y
CONFIG_X86_X32=y
CONFIG_X86_X32_DISABLED=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_IOSF_MBI=m
CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y

--- End Message ---
--- Begin Message ---
Hi Andrew,

On Sun, Sep 27, 2015 at 06:40:30PM +0800, Andrew Buckeridge - Private wrote:
> Package: linux-image-3.16.0-4-amd64
> Version: 3.16.7-ckt11-1+deb8u3
> Severity: normal
> 
> Dear Maintainer,
> I am able to run i386 and i686 binaries on my amd64 system, but not x32.
> 
> 
> Steps to reproduce:
> 
> # apt-get install libc6-dev-x32
> ...
> 
> $ gcc -Os -mx32 -o /tmp/csv2tsv /usr/local/src/csv2tsv.c 
> $ ldd /tmp/csv2tsv
>         not a dynamic executable
> $ /tmp/csv2tsv
> bash: /tmp/csv2tsv: cannot execute binary file: Exec format error
> 
> $ /libx32/ld-2.19.so 
> bash: /libx32/ld-2.19.so: cannot execute binary file: Exec format error
> 
> 
> I expected that I would be able to run x32 binaries with libc6-dev-x32
> and libc6-x32 installed on an amd64 system, but as the loader won't load
> this it is not going to work.
> 
> It looks like the kernel config prevents x32 binaries from loading.

X32 support support is indeed present starting from 3.14.15-1, but you
need to explicitly enable it with syscall.x32=y on the command line,
see https://wiki.debian.org/X32Port#Getting_Started .

See https://bugs.debian.org/708070 for more details on the reasoning.

Regards,
Salvatore

--- End Message ---

Reply to: