Date: Thu, 31 Mar 2005 15:08:24 -0300 From: "Carlos F. A. Paniago" <pan@cnpm.embrapa.br> To: freebsd-amd64@freebsd.org Subject: fstatfs break in amd64 ia32 emulation Message-ID: <424C3C98.30602@cnpm.embrapa.br>
next in thread | raw e-mail | index | archive | help
hi: I'm tring to compile in an amd64 and running in an i386.. I read in the list that is not possible, but some things work if we compile using: gcc -Di386 -D__i386__ -Uamd64 -U__amd64__ -m32 -B/lib32 -B/usr/lib32 -g -o test-i386.amd test-i386.c some simple program could be compiled in an amd64 machine and run in a i386 machine. but this program don't work: -- #include <stdio.h> #include <sys/param.h> #include <sys/mount.h> #include <sys/errno.h> int main(int argc, char** argv) { struct statfs buf; if (fstatfs(0, &buf) < 0) { perror("fstatfs"); } printf("%d %d\n", sizeof(buf), sizeof(&buf)); return 0; } -- the result is: --- ipe# ./test-i386 472 4 ipe# ./test-i386.amd 384 4 Segmentation fault (core dumped) ipe# --- this ipe machine is an i386 machine... the ./test-i386 is compiled in this machine as gcc -g -o test-i386 test-i386.c and the ./test-i386.amd is compiled in an amd64 using: gcc -Di386 -D__i386__ -Uamd64 -U__amd64__ -m32 -B/lib32 -B/usr/lib32 -g -o test-i386.amd test-i386.c The strange thing is the size of struct statfs that changes... If I compile this in an amd64 machine (oliveira is an amd64 machine) --- oliveira: {248} gcc -g -o test-i386.amd test-i386.c oliveira: {249} ./test-i386.amd 472 8 oliveira: {250} --- strange the size of the struct is the same as in i386 and the size of the pointer is 8 (instead of 4), but in the compilation using the -m32 the sizeof is strange... Someone know how to solve this problem??? Paniago -- Nome: Carlos Fernando Assis Paniago Email: pan@cnpm.embrapa.br Fone: +55 (19) 3256-60-30 Web: http://www.cnpm.embrapa.br/ Fax: +55 (19) 3254-11-00 --
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?424C3C98.30602>