From Bugzilla Helper: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) Description of problem: The binary compiled on ia34 with shared library, doesn't work on ia64 RedHat Enterprise Linux 3. The sample is below: #include <errno.h> extern int errno; main() { char *syscmd="mkdir '/tmp/xxxx'" ; int sysrc = 0; printf("command = %s\n",syscmd); sysrc = system(syscmd); printf("system = %d\n",sysrc); printf("errno = %d %s\n",errno,strerror(errno)); } Version-Release number of selected component (if applicable): glibc-2.3.2-95.3 How reproducible: Always Steps to Reproduce: 1.compile the sample on ia32 with shared library 2.execute the binary on ia64 3. Actual Results: command = mkdir '/tmp/xxxx' system = -1 errno = 14 Bad address Expected Results: command = mkdir '/tmp/xxxx' system = 0 errno = 0 Additional info: Same binary works fine on RH72 for IA64. Also fine the binary is compiled statically on ia32. The source file works properly on ia32 with compiling ia32, or on ia64 with compiling ia64. Is this a bug of /emul/ia32-linux/lib/*.so ?
*** This bug has been marked as a duplicate of 107116 ***
also your code is broken: #include <errno.h> extern int errno; is very very invalid
> also your code is broken: > #include <errno.h> > extern int errno; > is very very invalid The program validity is not essential. We just tell you that "system()" system call doesn't work on RHAS3 for IA64, although this works on RH72 for IA64.
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.