www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Tracking down bug: Need a few precompiled 32-bit linux Hello Worlds

reply "Nick Sabalausky" <a a.a> writes:
Twice now (from two totally different projects) I've come across precompiled 
linux binaries that give me "Illegal Instruction", but they work when I 
compile them myself. The idea of shared-lib/libc issues has been looked 
into, but it doesn't seem to be the culprit. Both times, D1 and Tango were 
involved. So I suspect it's something in Tango, but before I take this to 
the Tango team I'd like to be more sure. For all I know, it could be a D1 
thing, or even something backported over from druntime, something else, etc, 
I don't know.

I don't have a machine with a modern enough CPU that I can reproduce the 
offending binaries myself, so I'd appreciate if someone could build a few 
hello worlds for me:

1. D1/Tango
2. D1/Phobos
3. D2/Phobos

// d1tango.d
import tango.io.Stdout;
void main()
{
  Stdout.formatln("Hello");
}

// d1phobos.d and d2phobos.d
import std.stdio;
void main()
{
  writefln("Hello");
}

I'd need them built on a relatively modern CPU, I'd guess that anything that 
supports 64-bit and/or multi-core will probably do. They need to be 32-bit 
binaries. And to avoid any shared lib compatibility issues (which seem to be 
common on linux), they should be built on something like Ubuntu 10.06 (or 
older) or CentOS 4 (or older), etc (Building in a VM would be fine of 
course).

I'd appreciate anyone that has the right setup and can spare the bother to 
help out with this.
Jul 10 2011
next sibling parent "Nick Sabalausky" <a a.a> writes:
"Nick Sabalausky" <a a.a> wrote in message 
news:ivd56d$1s7q$1 digitalmars.com...
 Twice now (from two totally different projects) I've come across 
 precompiled linux binaries that give me "Illegal Instruction", but they 
 work when I compile them myself. The idea of shared-lib/libc issues has 
 been looked into, but it doesn't seem to be the culprit. Both times, D1 
 and Tango were involved. So I suspect it's something in Tango, but before 
 I take this to the Tango team I'd like to be more sure. For all I know, it 
 could be a D1 thing, or even something backported over from druntime, 
 something else, etc, I don't know.

 I don't have a machine with a modern enough CPU that I can reproduce the 
 offending binaries myself, so I'd appreciate if someone could build a few 
 hello worlds for me:

 1. D1/Tango
 2. D1/Phobos
 3. D2/Phobos

A C or C++ one might be good too, in case it's not even a D issue at all (like maybe the GCC linker?).
 // d1tango.d
 import tango.io.Stdout;
 void main()
 {
  Stdout.formatln("Hello");
 }

 // d1phobos.d and d2phobos.d
 import std.stdio;
 void main()
 {
  writefln("Hello");
 }

 I'd need them built on a relatively modern CPU, I'd guess that anything 
 that supports 64-bit and/or multi-core will probably do. They need to be 
 32-bit binaries. And to avoid any shared lib compatibility issues (which 
 seem to be common on linux), they should be built on something like Ubuntu 
 10.06 (or older) or CentOS 4 (or older), etc (Building in a VM would be 
 fine of course).

 I'd appreciate anyone that has the right setup and can spare the bother to 
 help out with this.

 

Jul 10 2011
prev sibling parent "Nick Sabalausky" <a a.a> writes:
"Nick Sabalausky" <a a.a> wrote in message 
news:ivd56d$1s7q$1 digitalmars.com...
 Twice now (from two totally different projects) I've come across 
 precompiled linux binaries that give me "Illegal Instruction", but they 
 work when I compile them myself. The idea of shared-lib/libc issues has 
 been looked into, but it doesn't seem to be the culprit. Both times, D1 
 and Tango were involved. So I suspect it's something in Tango, but before 
 I take this to the Tango team I'd like to be more sure. For all I know, it 
 could be a D1 thing, or even something backported over from druntime, 
 something else, etc, I don't know.

 I don't have a machine with a modern enough CPU that I can reproduce the 
 offending binaries myself, so I'd appreciate if someone could build a few 
 hello worlds for me:

 1. D1/Tango
 2. D1/Phobos
 3. D2/Phobos

 // d1tango.d
 import tango.io.Stdout;
 void main()
 {
  Stdout.formatln("Hello");
 }

 // d1phobos.d and d2phobos.d
 import std.stdio;
 void main()
 {
  writefln("Hello");
 }

 I'd need them built on a relatively modern CPU, I'd guess that anything 
 that supports 64-bit and/or multi-core will probably do. They need to be 
 32-bit binaries. And to avoid any shared lib compatibility issues (which 
 seem to be common on linux), they should be built on something like Ubuntu 
 10.06 (or older) or CentOS 4 (or older), etc (Building in a VM would be 
 fine of course).

 I'd appreciate anyone that has the right setup and can spare the bother to 
 help out with this.

Nevermind, I was able to borrow someone's laptop and install a VM. If anyone's interested, it looks liek it is (somehow) a problem in Tango, and the ticket is here: http://www.dsource.org/projects/tango/ticket/2061
Jul 13 2011