gcc compiled executable not working across x86_64 linux platforms


 
Thread Tools Search this Thread
Operating Systems Linux gcc compiled executable not working across x86_64 linux platforms
# 1  
Old 08-14-2008
gcc compiled executable not working across x86_64 linux platforms

Hi
I compiled a hello world program on two different 64-bit Linux machines, named quimby and node0331. When I compile on quimby and run on node0331 I get a "Floating exception (core dumped)" error. But if I do it in reverse, things work fine.

Here's my compilation on quimby:

$ uname -a
Linux quimby 2.6.18-8.1.15.el5 #1 SMP Mon Oct 22 08:32:28 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

$ cat hello.c
#include <stdio.h>
int main()
{
printf("Hello World\n");

return 0;
}

$ gcc -c hello.c -o hello.o ;
$ gcc -o hello hello.o
$ ./hello
Hello World

The I go to node0331 and run there:

$ uname -a
Linux node0331 2.6.9-42.0.3.ELsmp #1 SMP Fri Oct 6 06:28:26 CDT 2006 x86_64 x86_64 x86_64 GNU/Linux

$ ./hello
Floating exception (core dumped)

But again if I do this in reverse, things work fine. Has anyone ever experienced this problem.

Thanks in advance,

Sam
# 2  
Old 08-14-2008
Yes, this can happen. Depends on your OS and compiler versions. Generally executing a program on an earlier version of an OS than the version upon which the program was compiled, as is the case with your example, is not formally supported. It may or may not work.
# 3  
Old 08-15-2008
Ah, thanks for that feedback.

I guess there's nothing that can be done about that right? no gcc options which create generally compatible instructions (if there is such a thing)?

In any case, thanks for sharing your experience.

Sam
# 4  
Old 08-16-2008
You could see if linking it statically would help (or equivalently making sure you have the same libraries on both systems -- ldd hello tells you which libraries exactly).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Local variable in a C function is not getting created in stack when its compiled with GCC

Hi, I am working in UEFI EDK2 Bios source. We created a platform related new package in the EDK2 source. I find a strange issue with the platform related code we added. When I did source level debugging I noticed the local variable in a C function is not getting created in stack when its... (6 Replies)
Discussion started by: Divya R
6 Replies

2. Linux

File size limitation in the EST 2012 x86_64 GNU/Linux

Hello Friends, I tried to take tar backup in my server, but it ended with an error. It said that: /home/back/pallava_backup/fbackup_backup/stape_config /home/back/romam_new.tar.gz tar: /home/backup/back.tar.gz: Cannot write: No space left on device tar: Error is not recoverable: exiting... (10 Replies)
Discussion started by: siva3492
10 Replies

3. Solaris

Newly Compiled GCC 4.4.4 on Solaris sparc gives problem with -m32/-m64 flags

Hello experts, This issue has kept me busy all day long. It started off with openssl compilation which was giving linking error with following message: /usr/local/bin/ld: target elf32-sparc not found collect2: ld returned 1 exit status I tried every step possible thing that I could think... (2 Replies)
Discussion started by: d_shanke
2 Replies

4. Programming

Using ANSI color codes in gcc compiled program

I have put some yellow color codes and works well. I call the funstion using print_usage(stderr, 0); I would like to know if there is any way, to store the ansi color codes in variables and then call them inside fprintf. Or have a format followed by the strings I want to output. ... (5 Replies)
Discussion started by: kristinu
5 Replies

5. UNIX for Advanced & Expert Users

Viewing a compiled executable file

I've got a executable binary file (source code fortran77, compiled using gfortran). I'm not sure this is even possible but I remember someone I knew was able to view the source code that created this binary file, i.e. he used a program that enabled him to see what the source code was. Is this... (2 Replies)
Discussion started by: lost.identity
2 Replies

6. Programming

Finding the number of bits a executable was compiled

Hi, Can anyone tell me how to find out how many bits a c executable was compiled in? I am trying to do some investigation of running 32bit programs in 64bit systems. (1 Reply)
Discussion started by: Leion
1 Replies

7. Solaris

Executable compiled on solaris 10 not working on solaris 9

Hi I compiled an executable on Solaris 10 which creates semaphore ( semget) but it didn't work on solaris 9 , while it is executing sucessfully on solaris 10. It is throwing the system error that Invalid arguments ( system error 22) on solaris 9. the ldd for the executable on two servers is as... (4 Replies)
Discussion started by: ash_bit2k2
4 Replies

8. Linux

GCC cross compiler for x86_64

Hi, I am tried to install GCC cross compiler for 64-bit machine. i want compile one application for 64 bit machine. I have followed steps form GCC Cross-Compile - OSDev Wiki . Please if anybody have installed cross compiler successfully, please tell me the steps followed by you. Thanking... (0 Replies)
Discussion started by: Mandar123
0 Replies

9. Linux

GCC cross compiler for x86_64-elf

Hi, I am building GCC cross compiler for x86_64-elf for that a have followed steps, 1. mkdir build-gmp build-mpfr 2. cd build-gmp 3. ../gmp-4.2/configure --prefix=/usr/local 4. make all install 5. make check 6.cd ../build-mpfr 7. ../mpfr-2.3.2/configure... (5 Replies)
Discussion started by: Mandar123
5 Replies

10. Programming

dbx error ("Executable contains object file compiled on ...")

Hi, We are trying to run dbx on a core file for which we have the original executable and libs, but not the source / object tree. We have recompiled the objects from the original source, but dbx complains that they were compiled at a different time, and refuses to read them: Object file:... (0 Replies)
Discussion started by: Sabari Nath S
0 Replies
Login or Register to Ask a Question