From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <14ec7b180806271040p3c606162p7f45d7b6d321487f@mail.gmail.com> Date: Fri, 27 Jun 2008 11:40:12 -0600 From: "andrey mirtchovski" To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net> In-Reply-To: <20080627165844.4A77F1E8C35@holo.morphisms.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <3e1162e60806270839x1e0550b0nef671c73df91fff4@mail.gmail.com> <20080627165844.4A77F1E8C35@holo.morphisms.net> Subject: Re: [9fans] 9vx - os x fix Topicbox-Message-UUID: c8dbeb66-ead3-11e9-9d60-3106f5b1d025 > make 9vx/9vx on 10.5.3 that fails with: gcc -g -O3 -MD -std=gnu99 -I. -I. -I9vx -I9vx/a -Wall -Wno-missing-braces -c -o 9vx/main.o 9vx/main.c 9vx/main.c: In function 'sigsegv': 9vx/main.c:491: error: 'struct __darwin_mcontext32' has no member named 'es' 9vx/main.c:492: error: 'struct __darwin_mcontext32' has no member named 'ss' 9vx/main.c:493: error: 'struct __darwin_mcontext32' has no member named 'ss' make: *** [9vx/main.o] Error 1 turns out that osx exposes __es and __ss for mcontext in /usr/include/mach/i386/_structs.h. this fixes it: gcc -D__DARWIN_UNIX03=0 -g -O3 -MD -std=gnu99 -I. -I. -I9vx -I9vx/a -Wall -Wno-missing-braces -c -o 9vx/main.o 9vx/main.c a bit later on: gcc -Ilibvx32 -c -g -O3 -MD -std=gnu99 -I. -o libvx32/emu.o libvx32/emu.c libvx32/emu.c: In function 'vxproc_run': libvx32/emu.c:1796: error: storage size of 'env' isn't known make: *** [libvx32/emu.o] Error 1 is fixed identically by: gcc -D__DARWIN_UNIX03=0 -Ilibvx32 -c -g -O3 -MD -std=gnu99 -I. -o libvx32/emu.o libvx32/emu.c and then later on we fail with: gcc -g -O3 -MD -std=gnu99 -I. -I. -I9vx -I9vx/a -Wall -Wno-missing-braces -c -o 9vx/stub.o 9vx/stub.c make: *** No rule to make target `libvx32/darwin-asm.o', needed by `libvx32/libvx32.a'. Stop. and darwin-asm.S just seems to be missing everywhere. in fact, there is no definition for vx32_getcontext: $ find . -type f | xargs grep vx32_getcontext ./libvx32/emu.c: if(vx32_getcontext(&env)){ Binary file ./libvx32/emu.o matches ./libvx32/vx32impl.h:int vx32_getcontext(struct i386_thread_state*); $