This is a read-only archive of the Mumble forums.

This website archives and makes accessible historical state. It receives no updates or corrections. It is provided only to keep the information accessible as-is, under their old address.

For up-to-date information please refer to the Mumble website and its linked documentation and other resources. For support please refer to one of our other community/support channels.

Jump to content

x64 static server Linux


thisuserguy
 Share

Recommended Posts

These are Debian Stable servers with no multi arch as far as I am aware. ( all know for sure is that no x86 binary will run)

 

-bash: /path/to/binary/murmur/./murmur.x86: cannot execute binary file

I was told this is because only x64 binaries will run on this Debian x64 setup

 

file murmur.x86

These gives me:

 

murmur.x86: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

 

Is there a way I can compile it statically myself with x64? On Ubuntu 14 or Debian Stable?

Link to comment
Share on other sites

  • Administrators

There is a way, but I can’t really give you a simple command to do it.

We use ermine to build the static binaries http://www.magicermine.com/

And our build scripts provided in the mumble-releng repository have configuration for ermine builds on CentOS https://github.com/mumble-voip/mumble-releng/tree/746ec1871c3fa1fc077a0dace1fd64ea9fc6fbce/buildenv/1.2.x/centos-ermine


At least for me personally, it would be easier to build/use x64 deb packages.

If you still want to tackle static binary building, mkrautz will probably be more helpful if you run into problems; you can find him on IRC.

 

I was told this is because only x64 binaries will run on this Debian x64 setup

x64 Debian by default does not provide 32-bit libraries like that C standard library. However, after installing this/these 32-bit standard library package(s) any 32-bit program should run just fine.

By mkrautzs information these standard libraries are bundled with our static binaries though, so that should not be necessary.

[10:37:36] not sure that you need a 32-bit libc... we bundle libc (but not ld.so). the ermine wrapper is completely static (so no ld.so is needed); and when stracing there are no references to ld.so at all. so presumably it's doing all the loading/linking itself. haven't experimented with it though :-)

So I am unsure if this is just a superfluous arbitrary check by the system, or if something actually missing. If you could find out what it is that would be awesome.

Link to comment
Share on other sites

In this case x86 is not in the kernel (custom kernal) and it is not compiled. The reasons are around a large non root userbase on the server who can run things locally on the servers.


I will have to use a x64 binary as I know this would work. So then it s a question of how I get a x64 static binary.


If there was a way to do this myself I would compile it myself, I just ran into some errors with ice.3.3 paths when trying to compile the static using your documentation on Debian Stable.

Link to comment
Share on other sites

 Share

×
×
  • Create New...